<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>GtkWidget: GTK+ 3 Reference Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
<link rel="home" href="index.html" title="GTK+ 3 Reference Manual">
<link rel="up" href="AbstractObjects.html" title="Abstract Base Classes">
<link rel="prev" href="AbstractObjects.html" title="Abstract Base Classes">
<link rel="next" href="GtkContainer.html" title="GtkContainer">
<meta name="generator" content="GTK-Doc V1.33.1 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
                  <a href="#GtkWidget.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
                  <a href="#GtkWidget.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
                  <a href="#GtkWidget.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_derived_interfaces">  <span class="dim">|</span> 
                  <a href="#GtkWidget.derived-interfaces" class="shortcut">Known Derived Interfaces</a></span><span id="nav_properties">  <span class="dim">|</span> 
                  <a href="#GtkWidget.properties" class="shortcut">Properties</a></span><span id="nav_style_properties">  <span class="dim">|</span> 
                  <a href="#GtkWidget.style-properties" class="shortcut">Style Properties</a></span><span id="nav_signals">  <span class="dim">|</span> 
                  <a href="#GtkWidget.signals" class="shortcut">Signals</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="AbstractObjects.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="AbstractObjects.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="GtkContainer.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="GtkWidget"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="GtkWidget.top_of_page"></a>GtkWidget</span></h2>
<p>GtkWidget — Base class for all widgets</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="GtkWidget.functions"></a><h2>Functions</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="functions_proto_type">
<col class="functions_proto_name">
</colgroup>
<tbody>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<span class="c_punctuation">(</span><a class="link" href="GtkWidget.html#GtkCallback" title="GtkCallback ()">*GtkCallback</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="returnvalue">GtkWidget</span></a> *
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-new" title="gtk_widget_new ()">gtk_widget_new</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-destroy" title="gtk_widget_destroy ()">gtk_widget_destroy</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-in-destruction" title="gtk_widget_in_destruction ()">gtk_widget_in_destruction</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-destroyed" title="gtk_widget_destroyed ()">gtk_widget_destroyed</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-unparent" title="gtk_widget_unparent ()">gtk_widget_unparent</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-show" title="gtk_widget_show ()">gtk_widget_show</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-show-now" title="gtk_widget_show_now ()">gtk_widget_show_now</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-hide" title="gtk_widget_hide ()">gtk_widget_hide</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-show-all" title="gtk_widget_show_all ()">gtk_widget_show_all</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-map" title="gtk_widget_map ()">gtk_widget_map</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-unmap" title="gtk_widget_unmap ()">gtk_widget_unmap</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-realize" title="gtk_widget_realize ()">gtk_widget_realize</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-unrealize" title="gtk_widget_unrealize ()">gtk_widget_unrealize</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-draw" title="gtk_widget_draw ()">gtk_widget_draw</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-queue-draw" title="gtk_widget_queue_draw ()">gtk_widget_queue_draw</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-queue-resize" title="gtk_widget_queue_resize ()">gtk_widget_queue_resize</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-queue-resize-no-redraw" title="gtk_widget_queue_resize_no_redraw ()">gtk_widget_queue_resize_no_redraw</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-queue-allocate" title="gtk_widget_queue_allocate ()">gtk_widget_queue_allocate</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">GdkFrameClock</span> *
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-frame-clock" title="gtk_widget_get_frame_clock ()">gtk_widget_get_frame_clock</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gint</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-scale-factor" title="gtk_widget_get_scale_factor ()">gtk_widget_get_scale_factor</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<span class="c_punctuation">(</span><a class="link" href="GtkWidget.html#GtkTickCallback" title="GtkTickCallback ()">*GtkTickCallback</a><span class="c_punctuation">)</span> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">guint</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-add-tick-callback" title="gtk_widget_add_tick_callback ()">gtk_widget_add_tick_callback</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-remove-tick-callback" title="gtk_widget_remove_tick_callback ()">gtk_widget_remove_tick_callback</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-size-request" title="gtk_widget_size_request ()">gtk_widget_size_request</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-child-requisition" title="gtk_widget_get_child_requisition ()">gtk_widget_get_child_requisition</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-size-allocate" title="gtk_widget_size_allocate ()">gtk_widget_size_allocate</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-size-allocate-with-baseline" title="gtk_widget_size_allocate_with_baseline ()">gtk_widget_size_allocate_with_baseline</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-add-accelerator" title="gtk_widget_add_accelerator ()">gtk_widget_add_accelerator</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-remove-accelerator" title="gtk_widget_remove_accelerator ()">gtk_widget_remove_accelerator</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-set-accel-path" title="gtk_widget_set_accel_path ()">gtk_widget_set_accel_path</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">GList</span> *
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-list-accel-closures" title="gtk_widget_list_accel_closures ()">gtk_widget_list_accel_closures</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-can-activate-accel" title="gtk_widget_can_activate_accel ()">gtk_widget_can_activate_accel</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-event" title="gtk_widget_event ()">gtk_widget_event</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-activate" title="gtk_widget_activate ()">gtk_widget_activate</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-reparent" title="gtk_widget_reparent ()">gtk_widget_reparent</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-intersect" title="gtk_widget_intersect ()">gtk_widget_intersect</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-is-focus" title="gtk_widget_is_focus ()">gtk_widget_is_focus</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-grab-focus" title="gtk_widget_grab_focus ()">gtk_widget_grab_focus</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-grab-default" title="gtk_widget_grab_default ()">gtk_widget_grab_default</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-set-name" title="gtk_widget_set_name ()">gtk_widget_set_name</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">const <span class="returnvalue">gchar</span> *
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-name" title="gtk_widget_get_name ()">gtk_widget_get_name</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-set-state" title="gtk_widget_set_state ()">gtk_widget_set_state</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-set-sensitive" title="gtk_widget_set_sensitive ()">gtk_widget_set_sensitive</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-set-parent" title="gtk_widget_set_parent ()">gtk_widget_set_parent</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-set-parent-window" title="gtk_widget_set_parent_window ()">gtk_widget_set_parent_window</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">GdkWindow</span> *
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-parent-window" title="gtk_widget_get_parent_window ()">gtk_widget_get_parent_window</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-set-events" title="gtk_widget_set_events ()">gtk_widget_set_events</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gint</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-events" title="gtk_widget_get_events ()">gtk_widget_get_events</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-add-events" title="gtk_widget_add_events ()">gtk_widget_add_events</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-set-device-events" title="gtk_widget_set_device_events ()">gtk_widget_set_device_events</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">GdkEventMask</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-device-events" title="gtk_widget_get_device_events ()">gtk_widget_get_device_events</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-add-device-events" title="gtk_widget_add_device_events ()">gtk_widget_add_device_events</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-set-device-enabled" title="gtk_widget_set_device_enabled ()">gtk_widget_set_device_enabled</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-device-enabled" title="gtk_widget_get_device_enabled ()">gtk_widget_get_device_enabled</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="returnvalue">GtkWidget</span></a> *
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-toplevel" title="gtk_widget_get_toplevel ()">gtk_widget_get_toplevel</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="returnvalue">GtkWidget</span></a> *
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-ancestor" title="gtk_widget_get_ancestor ()">gtk_widget_get_ancestor</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">GdkVisual</span> *
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-visual" title="gtk_widget_get_visual ()">gtk_widget_get_visual</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-set-visual" title="gtk_widget_set_visual ()">gtk_widget_set_visual</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-pointer" title="gtk_widget_get_pointer ()">gtk_widget_get_pointer</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-is-ancestor" title="gtk_widget_is_ancestor ()">gtk_widget_is_ancestor</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-translate-coordinates" title="gtk_widget_translate_coordinates ()">gtk_widget_translate_coordinates</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-hide-on-delete" title="gtk_widget_hide_on_delete ()">gtk_widget_hide_on_delete</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-set-style" title="gtk_widget_set_style ()">gtk_widget_set_style</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-ensure-style" title="gtk_widget_ensure_style ()">gtk_widget_ensure_style</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GtkStyle.html" title="GtkStyle"><span class="returnvalue">GtkStyle</span></a> *
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-style" title="gtk_widget_get_style ()">gtk_widget_get_style</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-reset-rc-styles" title="gtk_widget_reset_rc_styles ()">gtk_widget_reset_rc_styles</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GtkStyle.html" title="GtkStyle"><span class="returnvalue">GtkStyle</span></a> *
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-default-style" title="gtk_widget_get_default_style ()">gtk_widget_get_default_style</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-set-direction" title="gtk_widget_set_direction ()">gtk_widget_set_direction</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GtkWidget.html#GtkTextDirection" title="enum GtkTextDirection"><span class="returnvalue">GtkTextDirection</span></a>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-direction" title="gtk_widget_get_direction ()">gtk_widget_get_direction</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-set-default-direction" title="gtk_widget_set_default_direction ()">gtk_widget_set_default_direction</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GtkWidget.html#GtkTextDirection" title="enum GtkTextDirection"><span class="returnvalue">GtkTextDirection</span></a>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-default-direction" title="gtk_widget_get_default_direction ()">gtk_widget_get_default_direction</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-shape-combine-region" title="gtk_widget_shape_combine_region ()">gtk_widget_shape_combine_region</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-input-shape-combine-region" title="gtk_widget_input_shape_combine_region ()">gtk_widget_input_shape_combine_region</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-path" title="gtk_widget_path ()">gtk_widget_path</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-class-path" title="gtk_widget_class_path ()">gtk_widget_class_path</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gchar</span> *
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-composite-name" title="gtk_widget_get_composite_name ()">gtk_widget_get_composite_name</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-override-background-color" title="gtk_widget_override_background_color ()">gtk_widget_override_background_color</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-override-color" title="gtk_widget_override_color ()">gtk_widget_override_color</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-override-font" title="gtk_widget_override_font ()">gtk_widget_override_font</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-override-symbolic-color" title="gtk_widget_override_symbolic_color ()">gtk_widget_override_symbolic_color</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-override-cursor" title="gtk_widget_override_cursor ()">gtk_widget_override_cursor</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-modify-style" title="gtk_widget_modify_style ()">gtk_widget_modify_style</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="gtk3-Resource-Files.html#GtkRcStyle"><span class="returnvalue">GtkRcStyle</span></a> *
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-modifier-style" title="gtk_widget_get_modifier_style ()">gtk_widget_get_modifier_style</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-modify-fg" title="gtk_widget_modify_fg ()">gtk_widget_modify_fg</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-modify-bg" title="gtk_widget_modify_bg ()">gtk_widget_modify_bg</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-modify-text" title="gtk_widget_modify_text ()">gtk_widget_modify_text</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-modify-base" title="gtk_widget_modify_base ()">gtk_widget_modify_base</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-modify-font" title="gtk_widget_modify_font ()">gtk_widget_modify_font</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-modify-cursor" title="gtk_widget_modify_cursor ()">gtk_widget_modify_cursor</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">PangoContext</span> *
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-create-pango-context" title="gtk_widget_create_pango_context ()">gtk_widget_create_pango_context</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">PangoContext</span> *
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-pango-context" title="gtk_widget_get_pango_context ()">gtk_widget_get_pango_context</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-set-font-options" title="gtk_widget_set_font_options ()">gtk_widget_set_font_options</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">const <a href="/usr/share/gtk-doc/html/cairo/cairo-cairo-font-options-t.html#cairo-font-options-t"><span class="returnvalue">cairo_font_options_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-font-options" title="gtk_widget_get_font_options ()">gtk_widget_get_font_options</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-set-font-map" title="gtk_widget_set_font_map ()">gtk_widget_set_font_map</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">PangoFontMap</span> *
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-font-map" title="gtk_widget_get_font_map ()">gtk_widget_get_font_map</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">PangoLayout</span> *
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-create-pango-layout" title="gtk_widget_create_pango_layout ()">gtk_widget_create_pango_layout</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">GdkPixbuf</span> *
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-render-icon" title="gtk_widget_render_icon ()">gtk_widget_render_icon</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">GdkPixbuf</span> *
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-render-icon-pixbuf" title="gtk_widget_render_icon_pixbuf ()">gtk_widget_render_icon_pixbuf</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-pop-composite-child" title="gtk_widget_pop_composite_child ()">gtk_widget_pop_composite_child</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-push-composite-child" title="gtk_widget_push_composite_child ()">gtk_widget_push_composite_child</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-queue-draw-area" title="gtk_widget_queue_draw_area ()">gtk_widget_queue_draw_area</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-queue-draw-region" title="gtk_widget_queue_draw_region ()">gtk_widget_queue_draw_region</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-set-app-paintable" title="gtk_widget_set_app_paintable ()">gtk_widget_set_app_paintable</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-set-double-buffered" title="gtk_widget_set_double_buffered ()">gtk_widget_set_double_buffered</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-set-redraw-on-allocate" title="gtk_widget_set_redraw_on_allocate ()">gtk_widget_set_redraw_on_allocate</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-set-composite-name" title="gtk_widget_set_composite_name ()">gtk_widget_set_composite_name</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-mnemonic-activate" title="gtk_widget_mnemonic_activate ()">gtk_widget_mnemonic_activate</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-class-install-style-property" title="gtk_widget_class_install_style_property ()">gtk_widget_class_install_style_property</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-class-install-style-property-parser" title="gtk_widget_class_install_style_property_parser ()">gtk_widget_class_install_style_property_parser</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">GParamSpec</span> *
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-class-find-style-property" title="gtk_widget_class_find_style_property ()">gtk_widget_class_find_style_property</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">GParamSpec</span> **
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-class-list-style-properties" title="gtk_widget_class_list_style_properties ()">gtk_widget_class_list_style_properties</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/cairo/cairo-Regions.html#cairo-region-t"><span class="returnvalue">cairo_region_t</span></a> *
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-region-intersect" title="gtk_widget_region_intersect ()">gtk_widget_region_intersect</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gint</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-send-expose" title="gtk_widget_send_expose ()">gtk_widget_send_expose</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-send-focus-change" title="gtk_widget_send_focus_change ()">gtk_widget_send_focus_change</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-style-get" title="gtk_widget_style_get ()">gtk_widget_style_get</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-style-get-property" title="gtk_widget_style_get_property ()">gtk_widget_style_get_property</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-style-get-valist" title="gtk_widget_style_get_valist ()">gtk_widget_style_get_valist</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-style-attach" title="gtk_widget_style_attach ()">gtk_widget_style_attach</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-class-set-accessible-type" title="gtk_widget_class_set_accessible_type ()">gtk_widget_class_set_accessible_type</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-class-set-accessible-role" title="gtk_widget_class_set_accessible_role ()">gtk_widget_class_set_accessible_role</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a href="/usr/share/gtk-doc/html/atk/AtkObject.html#AtkObject-struct"><span class="returnvalue">AtkObject</span></a> *
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-accessible" title="gtk_widget_get_accessible ()">gtk_widget_get_accessible</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-child-focus" title="gtk_widget_child_focus ()">gtk_widget_child_focus</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-child-notify" title="gtk_widget_child_notify ()">gtk_widget_child_notify</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-freeze-child-notify" title="gtk_widget_freeze_child_notify ()">gtk_widget_freeze_child_notify</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-child-visible" title="gtk_widget_get_child_visible ()">gtk_widget_get_child_visible</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="returnvalue">GtkWidget</span></a> *
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-parent" title="gtk_widget_get_parent ()">gtk_widget_get_parent</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GtkSettings.html" title="Settings"><span class="returnvalue">GtkSettings</span></a> *
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-settings" title="gtk_widget_get_settings ()">gtk_widget_get_settings</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="returnvalue">GtkClipboard</span></a> *
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-clipboard" title="gtk_widget_get_clipboard ()">gtk_widget_get_clipboard</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">GdkDisplay</span> *
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-display" title="gtk_widget_get_display ()">gtk_widget_get_display</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">GdkWindow</span> *
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-root-window" title="gtk_widget_get_root_window ()">gtk_widget_get_root_window</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">GdkScreen</span> *
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-screen" title="gtk_widget_get_screen ()">gtk_widget_get_screen</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-has-screen" title="gtk_widget_has_screen ()">gtk_widget_has_screen</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-size-request" title="gtk_widget_get_size_request ()">gtk_widget_get_size_request</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-set-child-visible" title="gtk_widget_set_child_visible ()">gtk_widget_set_child_visible</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-set-size-request" title="gtk_widget_set_size_request ()">gtk_widget_set_size_request</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-thaw-child-notify" title="gtk_widget_thaw_child_notify ()">gtk_widget_thaw_child_notify</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-set-no-show-all" title="gtk_widget_set_no_show_all ()">gtk_widget_set_no_show_all</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-no-show-all" title="gtk_widget_get_no_show_all ()">gtk_widget_get_no_show_all</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">GList</span> *
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-list-mnemonic-labels" title="gtk_widget_list_mnemonic_labels ()">gtk_widget_list_mnemonic_labels</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-add-mnemonic-label" title="gtk_widget_add_mnemonic_label ()">gtk_widget_add_mnemonic_label</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-remove-mnemonic-label" title="gtk_widget_remove_mnemonic_label ()">gtk_widget_remove_mnemonic_label</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-is-composited" title="gtk_widget_is_composited ()">gtk_widget_is_composited</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-error-bell" title="gtk_widget_error_bell ()">gtk_widget_error_bell</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-keynav-failed" title="gtk_widget_keynav_failed ()">gtk_widget_keynav_failed</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gchar</span> *
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-tooltip-markup" title="gtk_widget_get_tooltip_markup ()">gtk_widget_get_tooltip_markup</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-set-tooltip-markup" title="gtk_widget_set_tooltip_markup ()">gtk_widget_set_tooltip_markup</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gchar</span> *
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-tooltip-text" title="gtk_widget_get_tooltip_text ()">gtk_widget_get_tooltip_text</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-set-tooltip-text" title="gtk_widget_set_tooltip_text ()">gtk_widget_set_tooltip_text</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GtkWindow.html" title="GtkWindow"><span class="returnvalue">GtkWindow</span></a> *
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-tooltip-window" title="gtk_widget_get_tooltip_window ()">gtk_widget_get_tooltip_window</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-set-tooltip-window" title="gtk_widget_set_tooltip_window ()">gtk_widget_set_tooltip_window</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-has-tooltip" title="gtk_widget_get_has_tooltip ()">gtk_widget_get_has_tooltip</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-set-has-tooltip" title="gtk_widget_set_has_tooltip ()">gtk_widget_set_has_tooltip</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-trigger-tooltip-query" title="gtk_widget_trigger_tooltip_query ()">gtk_widget_trigger_tooltip_query</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">GdkWindow</span> *
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-window" title="gtk_widget_get_window ()">gtk_widget_get_window</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-register-window" title="gtk_widget_register_window ()">gtk_widget_register_window</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-unregister-window" title="gtk_widget_unregister_window ()">gtk_widget_unregister_window</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-cairo-should-draw-window" title="gtk_cairo_should_draw_window ()">gtk_cairo_should_draw_window</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-cairo-transform-to-window" title="gtk_cairo_transform_to_window ()">gtk_cairo_transform_to_window</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">int</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-allocated-width" title="gtk_widget_get_allocated_width ()">gtk_widget_get_allocated_width</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">int</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-allocated-height" title="gtk_widget_get_allocated_height ()">gtk_widget_get_allocated_height</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-allocation" title="gtk_widget_get_allocation ()">gtk_widget_get_allocation</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-set-allocation" title="gtk_widget_set_allocation ()">gtk_widget_set_allocation</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">int</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-allocated-baseline" title="gtk_widget_get_allocated_baseline ()">gtk_widget_get_allocated_baseline</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-allocated-size" title="gtk_widget_get_allocated_size ()">gtk_widget_get_allocated_size</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-clip" title="gtk_widget_get_clip ()">gtk_widget_get_clip</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-set-clip" title="gtk_widget_set_clip ()">gtk_widget_set_clip</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-app-paintable" title="gtk_widget_get_app_paintable ()">gtk_widget_get_app_paintable</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-can-default" title="gtk_widget_get_can_default ()">gtk_widget_get_can_default</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-set-can-default" title="gtk_widget_set_can_default ()">gtk_widget_set_can_default</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-can-focus" title="gtk_widget_get_can_focus ()">gtk_widget_get_can_focus</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-set-can-focus" title="gtk_widget_set_can_focus ()">gtk_widget_set_can_focus</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-focus-on-click" title="gtk_widget_get_focus_on_click ()">gtk_widget_get_focus_on_click</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-set-focus-on-click" title="gtk_widget_set_focus_on_click ()">gtk_widget_set_focus_on_click</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-double-buffered" title="gtk_widget_get_double_buffered ()">gtk_widget_get_double_buffered</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-has-window" title="gtk_widget_get_has_window ()">gtk_widget_get_has_window</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-set-has-window" title="gtk_widget_set_has_window ()">gtk_widget_set_has_window</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-sensitive" title="gtk_widget_get_sensitive ()">gtk_widget_get_sensitive</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-is-sensitive" title="gtk_widget_is_sensitive ()">gtk_widget_is_sensitive</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GtkWidget.html#GtkStateType" title="enum GtkStateType"><span class="returnvalue">GtkStateType</span></a>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-state" title="gtk_widget_get_state ()">gtk_widget_get_state</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-visible" title="gtk_widget_get_visible ()">gtk_widget_get_visible</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-is-visible" title="gtk_widget_is_visible ()">gtk_widget_is_visible</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-set-visible" title="gtk_widget_set_visible ()">gtk_widget_set_visible</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-set-state-flags" title="gtk_widget_set_state_flags ()">gtk_widget_set_state_flags</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-unset-state-flags" title="gtk_widget_unset_state_flags ()">gtk_widget_unset_state_flags</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="gtk3-Standard-Enumerations.html#GtkStateFlags" title="enum GtkStateFlags"><span class="returnvalue">GtkStateFlags</span></a>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-state-flags" title="gtk_widget_get_state_flags ()">gtk_widget_get_state_flags</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-has-default" title="gtk_widget_has_default ()">gtk_widget_has_default</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-has-focus" title="gtk_widget_has_focus ()">gtk_widget_has_focus</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-has-visible-focus" title="gtk_widget_has_visible_focus ()">gtk_widget_has_visible_focus</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-has-grab" title="gtk_widget_has_grab ()">gtk_widget_has_grab</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-has-rc-style" title="gtk_widget_has_rc_style ()">gtk_widget_has_rc_style</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-is-drawable" title="gtk_widget_is_drawable ()">gtk_widget_is_drawable</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-is-toplevel" title="gtk_widget_is_toplevel ()">gtk_widget_is_toplevel</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-set-window" title="gtk_widget_set_window ()">gtk_widget_set_window</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-set-receives-default" title="gtk_widget_set_receives_default ()">gtk_widget_set_receives_default</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-receives-default" title="gtk_widget_get_receives_default ()">gtk_widget_get_receives_default</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-set-support-multidevice" title="gtk_widget_set_support_multidevice ()">gtk_widget_set_support_multidevice</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-support-multidevice" title="gtk_widget_get_support_multidevice ()">gtk_widget_get_support_multidevice</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-set-realized" title="gtk_widget_set_realized ()">gtk_widget_set_realized</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-realized" title="gtk_widget_get_realized ()">gtk_widget_get_realized</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-set-mapped" title="gtk_widget_set_mapped ()">gtk_widget_set_mapped</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-mapped" title="gtk_widget_get_mapped ()">gtk_widget_get_mapped</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-requisition" title="gtk_widget_get_requisition ()">gtk_widget_get_requisition</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-device-is-shadowed" title="gtk_widget_device_is_shadowed ()">gtk_widget_device_is_shadowed</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">GdkModifierType</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-modifier-mask" title="gtk_widget_get_modifier_mask ()">gtk_widget_get_modifier_mask</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-insert-action-group" title="gtk_widget_insert_action_group ()">gtk_widget_insert_action_group</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">double</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-opacity" title="gtk_widget_get_opacity ()">gtk_widget_get_opacity</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-set-opacity" title="gtk_widget_set_opacity ()">gtk_widget_set_opacity</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">const <span class="returnvalue">gchar</span> **
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-list-action-prefixes" title="gtk_widget_list_action_prefixes ()">gtk_widget_list_action_prefixes</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">GActionGroup</span> *
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-action-group" title="gtk_widget_get_action_group ()">gtk_widget_get_action_group</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="gtk3-GtkWidgetPath.html#GtkWidgetPath" title="GtkWidgetPath"><span class="returnvalue">GtkWidgetPath</span></a> *
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-path" title="gtk_widget_get_path ()">gtk_widget_get_path</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GtkStyleContext.html" title="GtkStyleContext"><span class="returnvalue">GtkStyleContext</span></a> *
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-style-context" title="gtk_widget_get_style_context ()">gtk_widget_get_style_context</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-reset-style" title="gtk_widget_reset_style ()">gtk_widget_reset_style</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">const <span class="returnvalue">char</span> *
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-class-get-css-name" title="gtk_widget_class_get_css_name ()">gtk_widget_class_get_css_name</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-class-set-css-name" title="gtk_widget_class_set_css_name ()">gtk_widget_class_set_css_name</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GtkWidget.html#GtkRequisition"><span class="returnvalue">GtkRequisition</span></a> *
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-requisition-new" title="gtk_requisition_new ()">gtk_requisition_new</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GtkWidget.html#GtkRequisition"><span class="returnvalue">GtkRequisition</span></a> *
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-requisition-copy" title="gtk_requisition_copy ()">gtk_requisition_copy</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-requisition-free" title="gtk_requisition_free ()">gtk_requisition_free</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-preferred-height" title="gtk_widget_get_preferred_height ()">gtk_widget_get_preferred_height</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-preferred-width" title="gtk_widget_get_preferred_width ()">gtk_widget_get_preferred_width</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-preferred-height-for-width" title="gtk_widget_get_preferred_height_for_width ()">gtk_widget_get_preferred_height_for_width</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-preferred-width-for-height" title="gtk_widget_get_preferred_width_for_height ()">gtk_widget_get_preferred_width_for_height</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-preferred-height-and-baseline-for-width" title="gtk_widget_get_preferred_height_and_baseline_for_width ()">gtk_widget_get_preferred_height_and_baseline_for_width</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GtkWidget.html#GtkSizeRequestMode" title="enum GtkSizeRequestMode"><span class="returnvalue">GtkSizeRequestMode</span></a>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-request-mode" title="gtk_widget_get_request_mode ()">gtk_widget_get_request_mode</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-preferred-size" title="gtk_widget_get_preferred_size ()">gtk_widget_get_preferred_size</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gint</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-distribute-natural-allocation" title="gtk_distribute_natural_allocation ()">gtk_distribute_natural_allocation</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GtkWidget.html#GtkAlign" title="enum GtkAlign"><span class="returnvalue">GtkAlign</span></a>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-halign" title="gtk_widget_get_halign ()">gtk_widget_get_halign</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-set-halign" title="gtk_widget_set_halign ()">gtk_widget_set_halign</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GtkWidget.html#GtkAlign" title="enum GtkAlign"><span class="returnvalue">GtkAlign</span></a>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-valign" title="gtk_widget_get_valign ()">gtk_widget_get_valign</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<a class="link" href="GtkWidget.html#GtkAlign" title="enum GtkAlign"><span class="returnvalue">GtkAlign</span></a>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-valign-with-baseline" title="gtk_widget_get_valign_with_baseline ()">gtk_widget_get_valign_with_baseline</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-set-valign" title="gtk_widget_set_valign ()">gtk_widget_set_valign</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gint</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-margin-left" title="gtk_widget_get_margin_left ()">gtk_widget_get_margin_left</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-set-margin-left" title="gtk_widget_set_margin_left ()">gtk_widget_set_margin_left</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gint</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-margin-right" title="gtk_widget_get_margin_right ()">gtk_widget_get_margin_right</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-set-margin-right" title="gtk_widget_set_margin_right ()">gtk_widget_set_margin_right</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gint</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-margin-start" title="gtk_widget_get_margin_start ()">gtk_widget_get_margin_start</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-set-margin-start" title="gtk_widget_set_margin_start ()">gtk_widget_set_margin_start</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gint</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-margin-end" title="gtk_widget_get_margin_end ()">gtk_widget_get_margin_end</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-set-margin-end" title="gtk_widget_set_margin_end ()">gtk_widget_set_margin_end</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gint</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-margin-top" title="gtk_widget_get_margin_top ()">gtk_widget_get_margin_top</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-set-margin-top" title="gtk_widget_set_margin_top ()">gtk_widget_set_margin_top</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gint</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-margin-bottom" title="gtk_widget_get_margin_bottom ()">gtk_widget_get_margin_bottom</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-set-margin-bottom" title="gtk_widget_set_margin_bottom ()">gtk_widget_set_margin_bottom</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-hexpand" title="gtk_widget_get_hexpand ()">gtk_widget_get_hexpand</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-set-hexpand" title="gtk_widget_set_hexpand ()">gtk_widget_set_hexpand</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-hexpand-set" title="gtk_widget_get_hexpand_set ()">gtk_widget_get_hexpand_set</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-set-hexpand-set" title="gtk_widget_set_hexpand_set ()">gtk_widget_set_hexpand_set</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-vexpand" title="gtk_widget_get_vexpand ()">gtk_widget_get_vexpand</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-set-vexpand" title="gtk_widget_set_vexpand ()">gtk_widget_set_vexpand</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-vexpand-set" title="gtk_widget_get_vexpand_set ()">gtk_widget_get_vexpand_set</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-set-vexpand-set" title="gtk_widget_set_vexpand_set ()">gtk_widget_set_vexpand_set</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-queue-compute-expand" title="gtk_widget_queue_compute_expand ()">gtk_widget_queue_compute_expand</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">gboolean</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-compute-expand" title="gtk_widget_compute_expand ()">gtk_widget_compute_expand</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-init-template" title="gtk_widget_init_template ()">gtk_widget_init_template</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-class-set-template" title="gtk_widget_class_set_template ()">gtk_widget_class_set_template</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-class-set-template-from-resource" title="gtk_widget_class_set_template_from_resource ()">gtk_widget_class_set_template_from_resource</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">GObject</span> *
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-get-template-child" title="gtk_widget_get_template_child ()">gtk_widget_get_template_child</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-class-bind-template-child" title="gtk_widget_class_bind_template_child()">gtk_widget_class_bind_template_child</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-class-bind-template-child-internal" title="gtk_widget_class_bind_template_child_internal()">gtk_widget_class_bind_template_child_internal</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-class-bind-template-child-private" title="gtk_widget_class_bind_template_child_private()">gtk_widget_class_bind_template_child_private</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-class-bind-template-child-internal-private" title="gtk_widget_class_bind_template_child_internal_private()">gtk_widget_class_bind_template_child_internal_private</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-class-bind-template-child-full" title="gtk_widget_class_bind_template_child_full ()">gtk_widget_class_bind_template_child_full</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="define_keyword">#define</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-class-bind-template-callback" title="gtk_widget_class_bind_template_callback()">gtk_widget_class_bind_template_callback</a><span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-class-bind-template-callback-full" title="gtk_widget_class_bind_template_callback_full ()">gtk_widget_class_bind_template_callback_full</a> <span class="c_punctuation">()</span>
</td>
</tr>
<tr>
<td class="function_type">
<span class="returnvalue">void</span>
</td>
<td class="function_name">
<a class="link" href="GtkWidget.html#gtk-widget-class-set-connect-func" title="gtk_widget_class_set_connect_func ()">gtk_widget_class_set_connect_func</a> <span class="c_punctuation">()</span>
</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="GtkWidget.properties"></a><h2>Properties</h2>
<div class="informaltable"><table class="informaltable" border="0">
<colgroup>
<col width="150px" class="properties_type">
<col width="300px" class="properties_name">
<col width="200px" class="properties_flags">
</colgroup>
<tbody>
<tr>
<td class="property_type"><span class="type">gboolean</span></td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--app-paintable" title="The “app-paintable” property">app-paintable</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><span class="type">gboolean</span></td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--can-default" title="The “can-default” property">can-default</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><span class="type">gboolean</span></td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--can-focus" title="The “can-focus” property">can-focus</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><span class="type">gboolean</span></td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--composite-child" title="The “composite-child” property">composite-child</a></td>
<td class="property_flags">Read</td>
</tr>
<tr>
<td class="property_type"><span class="type">gboolean</span></td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--double-buffered" title="The “double-buffered” property">double-buffered</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><span class="type">GdkEventMask</span></td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--events" title="The “events” property">events</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><span class="type">gboolean</span></td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--expand" title="The “expand” property">expand</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><span class="type">gboolean</span></td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--focus-on-click" title="The “focus-on-click” property">focus-on-click</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><a class="link" href="GtkWidget.html#GtkAlign" title="enum GtkAlign"><span class="type">GtkAlign</span></a></td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--halign" title="The “halign” property">halign</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><span class="type">gboolean</span></td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--has-default" title="The “has-default” property">has-default</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><span class="type">gboolean</span></td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--has-focus" title="The “has-focus” property">has-focus</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><span class="type">gboolean</span></td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--has-tooltip" title="The “has-tooltip” property">has-tooltip</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><span class="type">int</span></td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--height-request" title="The “height-request” property">height-request</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><span class="type">gboolean</span></td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--hexpand" title="The “hexpand” property">hexpand</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><span class="type">gboolean</span></td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--hexpand-set" title="The “hexpand-set” property">hexpand-set</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><span class="type">gboolean</span></td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--is-focus" title="The “is-focus” property">is-focus</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><span class="type">int</span></td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--margin" title="The “margin” property">margin</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><span class="type">int</span></td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--margin-bottom" title="The “margin-bottom” property">margin-bottom</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><span class="type">int</span></td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--margin-end" title="The “margin-end” property">margin-end</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><span class="type">int</span></td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--margin-left" title="The “margin-left” property">margin-left</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><span class="type">int</span></td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--margin-right" title="The “margin-right” property">margin-right</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><span class="type">int</span></td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--margin-start" title="The “margin-start” property">margin-start</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><span class="type">int</span></td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--margin-top" title="The “margin-top” property">margin-top</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type">
<span class="type">char</span> *</td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--name" title="The “name” property">name</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><span class="type">gboolean</span></td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--no-show-all" title="The “no-show-all” property">no-show-all</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><span class="type">double</span></td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--opacity" title="The “opacity” property">opacity</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type">
<a class="link" href="GtkContainer.html" title="GtkContainer"><span class="type">GtkContainer</span></a> *</td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--parent" title="The “parent” property">parent</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><span class="type">gboolean</span></td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--receives-default" title="The “receives-default” property">receives-default</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><span class="type">int</span></td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--scale-factor" title="The “scale-factor” property">scale-factor</a></td>
<td class="property_flags">Read</td>
</tr>
<tr>
<td class="property_type"><span class="type">gboolean</span></td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--sensitive" title="The “sensitive” property">sensitive</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type">
<a class="link" href="GtkStyle.html" title="GtkStyle"><span class="type">GtkStyle</span></a> *</td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--style" title="The “style” property">style</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type">
<span class="type">char</span> *</td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--tooltip-markup" title="The “tooltip-markup” property">tooltip-markup</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type">
<span class="type">char</span> *</td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--tooltip-text" title="The “tooltip-text” property">tooltip-text</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><a class="link" href="GtkWidget.html#GtkAlign" title="enum GtkAlign"><span class="type">GtkAlign</span></a></td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--valign" title="The “valign” property">valign</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><span class="type">gboolean</span></td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--vexpand" title="The “vexpand” property">vexpand</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><span class="type">gboolean</span></td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--vexpand-set" title="The “vexpand-set” property">vexpand-set</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><span class="type">gboolean</span></td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--visible" title="The “visible” property">visible</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><span class="type">int</span></td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--width-request" title="The “width-request” property">width-request</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type">
<span class="type">GdkWindow</span> *</td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--window" title="The “window” property">window</a></td>
<td class="property_flags">Read</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="GtkWidget.style-properties"></a><h2>Style Properties</h2>
<div class="informaltable"><table class="informaltable" border="0">
<colgroup>
<col width="150px" class="style_properties_type">
<col width="300px" class="style_properties_name">
<col width="200px" class="style_properties_flags">
</colgroup>
<tbody>
<tr>
<td class="property_type"><span class="type">float</span></td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--s-cursor-aspect-ratio" title="The “cursor-aspect-ratio” style property">cursor-aspect-ratio</a></td>
<td class="property_flags">Read</td>
</tr>
<tr>
<td class="property_type">
<span class="type">GdkColor</span> *</td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--s-cursor-color" title="The “cursor-color” style property">cursor-color</a></td>
<td class="property_flags">Read</td>
</tr>
<tr>
<td class="property_type">
<span class="type">char</span> *</td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--s-focus-line-pattern" title="The “focus-line-pattern” style property">focus-line-pattern</a></td>
<td class="property_flags">Read</td>
</tr>
<tr>
<td class="property_type"><span class="type">int</span></td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--s-focus-line-width" title="The “focus-line-width” style property">focus-line-width</a></td>
<td class="property_flags">Read</td>
</tr>
<tr>
<td class="property_type"><span class="type">int</span></td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--s-focus-padding" title="The “focus-padding” style property">focus-padding</a></td>
<td class="property_flags">Read</td>
</tr>
<tr>
<td class="property_type"><span class="type">gboolean</span></td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--s-interior-focus" title="The “interior-focus” style property">interior-focus</a></td>
<td class="property_flags">Read</td>
</tr>
<tr>
<td class="property_type">
<span class="type">GdkColor</span> *</td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--s-link-color" title="The “link-color” style property">link-color</a></td>
<td class="property_flags">Read</td>
</tr>
<tr>
<td class="property_type"><span class="type">int</span></td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--s-scroll-arrow-hlength" title="The “scroll-arrow-hlength” style property">scroll-arrow-hlength</a></td>
<td class="property_flags">Read</td>
</tr>
<tr>
<td class="property_type"><span class="type">int</span></td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--s-scroll-arrow-vlength" title="The “scroll-arrow-vlength” style property">scroll-arrow-vlength</a></td>
<td class="property_flags">Read</td>
</tr>
<tr>
<td class="property_type">
<span class="type">GdkColor</span> *</td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--s-secondary-cursor-color" title="The “secondary-cursor-color” style property">secondary-cursor-color</a></td>
<td class="property_flags">Read</td>
</tr>
<tr>
<td class="property_type"><span class="type">int</span></td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--s-separator-height" title="The “separator-height” style property">separator-height</a></td>
<td class="property_flags">Read</td>
</tr>
<tr>
<td class="property_type"><span class="type">int</span></td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--s-separator-width" title="The “separator-width” style property">separator-width</a></td>
<td class="property_flags">Read</td>
</tr>
<tr>
<td class="property_type"><span class="type">int</span></td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--s-text-handle-height" title="The “text-handle-height” style property">text-handle-height</a></td>
<td class="property_flags">Read</td>
</tr>
<tr>
<td class="property_type"><span class="type">int</span></td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--s-text-handle-width" title="The “text-handle-width” style property">text-handle-width</a></td>
<td class="property_flags">Read</td>
</tr>
<tr>
<td class="property_type">
<span class="type">GdkColor</span> *</td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--s-visited-link-color" title="The “visited-link-color” style property">visited-link-color</a></td>
<td class="property_flags">Read</td>
</tr>
<tr>
<td class="property_type"><span class="type">gboolean</span></td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--s-wide-separators" title="The “wide-separators” style property">wide-separators</a></td>
<td class="property_flags">Read</td>
</tr>
<tr>
<td class="property_type"><span class="type">gboolean</span></td>
<td class="property_name"><a class="link" href="GtkWidget.html#GtkWidget--s-window-dragging" title="The “window-dragging” style property">window-dragging</a></td>
<td class="property_flags">Read</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="GtkWidget.signals"></a><h2>Signals</h2>
<div class="informaltable"><table class="informaltable" border="0">
<colgroup>
<col width="150px" class="signal_proto_type">
<col width="300px" class="signal_proto_name">
<col width="200px" class="signal_proto_flags">
</colgroup>
<tbody>
<tr>
<td class="signal_type"><span class="returnvalue">void</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-accel-closures-changed" title="The “accel-closures-changed” signal">accel-closures-changed</a></td>
<td class="signal_flags"> </td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">gboolean</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-button-press-event" title="The “button-press-event” signal">button-press-event</a></td>
<td class="signal_flags">Run Last</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">gboolean</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-button-release-event" title="The “button-release-event” signal">button-release-event</a></td>
<td class="signal_flags">Run Last</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">gboolean</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-can-activate-accel" title="The “can-activate-accel” signal">can-activate-accel</a></td>
<td class="signal_flags">Run Last</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">void</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-child-notify" title="The “child-notify” signal">child-notify</a></td>
<td class="signal_flags">No Hooks</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">void</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-composited-changed" title="The “composited-changed” signal">composited-changed</a></td>
<td class="signal_flags">Action</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">gboolean</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-configure-event" title="The “configure-event” signal">configure-event</a></td>
<td class="signal_flags">Run Last</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">gboolean</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-damage-event" title="The “damage-event” signal">damage-event</a></td>
<td class="signal_flags">Run Last</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">gboolean</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-delete-event" title="The “delete-event” signal">delete-event</a></td>
<td class="signal_flags">Run Last</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">void</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-destroy" title="The “destroy” signal">destroy</a></td>
<td class="signal_flags">No Hooks</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">gboolean</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-destroy-event" title="The “destroy-event” signal">destroy-event</a></td>
<td class="signal_flags">Run Last</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">void</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-direction-changed" title="The “direction-changed” signal">direction-changed</a></td>
<td class="signal_flags">Run First</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">void</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-drag-begin" title="The “drag-begin” signal">drag-begin</a></td>
<td class="signal_flags">Run Last</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">void</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-drag-data-delete" title="The “drag-data-delete” signal">drag-data-delete</a></td>
<td class="signal_flags">Run Last</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">void</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-drag-data-get" title="The “drag-data-get” signal">drag-data-get</a></td>
<td class="signal_flags">Run Last</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">void</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-drag-data-received" title="The “drag-data-received” signal">drag-data-received</a></td>
<td class="signal_flags">Run Last</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">gboolean</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-drag-drop" title="The “drag-drop” signal">drag-drop</a></td>
<td class="signal_flags">Run Last</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">void</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-drag-end" title="The “drag-end” signal">drag-end</a></td>
<td class="signal_flags">Run Last</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">gboolean</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-drag-failed" title="The “drag-failed” signal">drag-failed</a></td>
<td class="signal_flags">Run Last</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">void</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-drag-leave" title="The “drag-leave” signal">drag-leave</a></td>
<td class="signal_flags">Run Last</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">gboolean</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-drag-motion" title="The “drag-motion” signal">drag-motion</a></td>
<td class="signal_flags">Run Last</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">gboolean</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-draw" title="The “draw” signal">draw</a></td>
<td class="signal_flags">Run Last</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">gboolean</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-enter-notify-event" title="The “enter-notify-event” signal">enter-notify-event</a></td>
<td class="signal_flags">Run Last</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">gboolean</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-event" title="The “event” signal">event</a></td>
<td class="signal_flags">Run Last</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">void</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-event-after" title="The “event-after” signal">event-after</a></td>
<td class="signal_flags"> </td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">gboolean</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-focus" title="The “focus” signal">focus</a></td>
<td class="signal_flags">Run Last</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">gboolean</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-focus-in-event" title="The “focus-in-event” signal">focus-in-event</a></td>
<td class="signal_flags">Run Last</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">gboolean</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-focus-out-event" title="The “focus-out-event” signal">focus-out-event</a></td>
<td class="signal_flags">Run Last</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">gboolean</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-grab-broken-event" title="The “grab-broken-event” signal">grab-broken-event</a></td>
<td class="signal_flags">Run Last</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">void</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-grab-focus" title="The “grab-focus” signal">grab-focus</a></td>
<td class="signal_flags">Action</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">void</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-grab-notify" title="The “grab-notify” signal">grab-notify</a></td>
<td class="signal_flags">Run First</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">void</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-hide" title="The “hide” signal">hide</a></td>
<td class="signal_flags">Run First</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">void</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-hierarchy-changed" title="The “hierarchy-changed” signal">hierarchy-changed</a></td>
<td class="signal_flags">Run Last</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">gboolean</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-key-press-event" title="The “key-press-event” signal">key-press-event</a></td>
<td class="signal_flags">Run Last</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">gboolean</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-key-release-event" title="The “key-release-event” signal">key-release-event</a></td>
<td class="signal_flags">Run Last</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">gboolean</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-keynav-failed" title="The “keynav-failed” signal">keynav-failed</a></td>
<td class="signal_flags">Run Last</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">gboolean</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-leave-notify-event" title="The “leave-notify-event” signal">leave-notify-event</a></td>
<td class="signal_flags">Run Last</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">void</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-map" title="The “map” signal">map</a></td>
<td class="signal_flags">Run First</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">gboolean</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-map-event" title="The “map-event” signal">map-event</a></td>
<td class="signal_flags">Run Last</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">gboolean</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-mnemonic-activate" title="The “mnemonic-activate” signal">mnemonic-activate</a></td>
<td class="signal_flags">Run Last</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">gboolean</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-motion-notify-event" title="The “motion-notify-event” signal">motion-notify-event</a></td>
<td class="signal_flags">Run Last</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">void</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-move-focus" title="The “move-focus” signal">move-focus</a></td>
<td class="signal_flags">Action</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">void</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-parent-set" title="The “parent-set” signal">parent-set</a></td>
<td class="signal_flags">Run First</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">gboolean</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-popup-menu" title="The “popup-menu” signal">popup-menu</a></td>
<td class="signal_flags">Action</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">gboolean</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-property-notify-event" title="The “property-notify-event” signal">property-notify-event</a></td>
<td class="signal_flags">Run Last</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">gboolean</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-proximity-in-event" title="The “proximity-in-event” signal">proximity-in-event</a></td>
<td class="signal_flags">Run Last</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">gboolean</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-proximity-out-event" title="The “proximity-out-event” signal">proximity-out-event</a></td>
<td class="signal_flags">Run Last</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">gboolean</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-query-tooltip" title="The “query-tooltip” signal">query-tooltip</a></td>
<td class="signal_flags">Run Last</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">void</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-realize" title="The “realize” signal">realize</a></td>
<td class="signal_flags">Run First</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">void</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-screen-changed" title="The “screen-changed” signal">screen-changed</a></td>
<td class="signal_flags">Run Last</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">gboolean</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-scroll-event" title="The “scroll-event” signal">scroll-event</a></td>
<td class="signal_flags">Run Last</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">gboolean</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-selection-clear-event" title="The “selection-clear-event” signal">selection-clear-event</a></td>
<td class="signal_flags">Run Last</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">void</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-selection-get" title="The “selection-get” signal">selection-get</a></td>
<td class="signal_flags">Run Last</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">gboolean</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-selection-notify-event" title="The “selection-notify-event” signal">selection-notify-event</a></td>
<td class="signal_flags">Run Last</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">void</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-selection-received" title="The “selection-received” signal">selection-received</a></td>
<td class="signal_flags">Run Last</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">gboolean</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-selection-request-event" title="The “selection-request-event” signal">selection-request-event</a></td>
<td class="signal_flags">Run Last</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">void</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-show" title="The “show” signal">show</a></td>
<td class="signal_flags">Run First</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">gboolean</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-show-help" title="The “show-help” signal">show-help</a></td>
<td class="signal_flags">Action</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">void</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-size-allocate" title="The “size-allocate” signal">size-allocate</a></td>
<td class="signal_flags">Run First</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">void</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-state-changed" title="The “state-changed” signal">state-changed</a></td>
<td class="signal_flags">Run First</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">void</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-state-flags-changed" title="The “state-flags-changed” signal">state-flags-changed</a></td>
<td class="signal_flags">Run First</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">void</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-style-set" title="The “style-set” signal">style-set</a></td>
<td class="signal_flags">Run First</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">void</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-style-updated" title="The “style-updated” signal">style-updated</a></td>
<td class="signal_flags">Run First</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">gboolean</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-touch-event" title="The “touch-event” signal">touch-event</a></td>
<td class="signal_flags">Run Last</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">void</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-unmap" title="The “unmap” signal">unmap</a></td>
<td class="signal_flags">Run First</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">gboolean</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-unmap-event" title="The “unmap-event” signal">unmap-event</a></td>
<td class="signal_flags">Run Last</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">void</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-unrealize" title="The “unrealize” signal">unrealize</a></td>
<td class="signal_flags">Run Last</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">gboolean</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-visibility-notify-event" title="The “visibility-notify-event” signal">visibility-notify-event</a></td>
<td class="signal_flags">Run Last</td>
</tr>
<tr>
<td class="signal_type"><span class="returnvalue">gboolean</span></td>
<td class="signal_name"><a class="link" href="GtkWidget.html#GtkWidget-window-state-event" title="The “window-state-event” signal">window-state-event</a></td>
<td class="signal_flags">Run Last</td>
</tr>
</tbody>
</table></div>
</div>
<a name="GtkRequisition"></a><div class="refsect1">
<a name="GtkWidget.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="other_proto_type">
<col class="other_proto_name">
</colgroup>
<tbody>
<tr>
<td class="datatype_keyword"> </td>
<td class="function_name"><a class="link" href="GtkWidget.html#GtkWidget-struct" title="GtkWidget">GtkWidget</a></td>
</tr>
<tr>
<td class="datatype_keyword">struct</td>
<td class="function_name"><a class="link" href="GtkWidget.html#GtkWidgetClass" title="struct GtkWidgetClass">GtkWidgetClass</a></td>
</tr>
<tr>
<td class="datatype_keyword"> </td>
<td class="function_name"><a class="link" href="GtkWidget.html#GtkRequisition-struct" title="GtkRequisition">GtkRequisition</a></td>
</tr>
<tr>
<td class="typedef_keyword">typedef</td>
<td class="function_name"><a class="link" href="GtkWidget.html#GtkAllocation" title="GtkAllocation">GtkAllocation</a></td>
</tr>
<tr>
<td class="datatype_keyword">enum</td>
<td class="function_name"><a class="link" href="GtkWidget.html#GtkWidgetHelpType" title="enum GtkWidgetHelpType">GtkWidgetHelpType</a></td>
</tr>
<tr>
<td class="datatype_keyword">enum</td>
<td class="function_name"><a class="link" href="GtkWidget.html#GtkTextDirection" title="enum GtkTextDirection">GtkTextDirection</a></td>
</tr>
<tr>
<td class="datatype_keyword">enum</td>
<td class="function_name"><a class="link" href="GtkWidget.html#GtkStateType" title="enum GtkStateType">GtkStateType</a></td>
</tr>
<tr>
<td class="datatype_keyword">enum</td>
<td class="function_name"><a class="link" href="GtkWidget.html#GtkSizeRequestMode" title="enum GtkSizeRequestMode">GtkSizeRequestMode</a></td>
</tr>
<tr>
<td class="datatype_keyword">struct</td>
<td class="function_name"><a class="link" href="GtkWidget.html#GtkRequestedSize" title="struct GtkRequestedSize">GtkRequestedSize</a></td>
</tr>
<tr>
<td class="datatype_keyword">enum</td>
<td class="function_name"><a class="link" href="GtkWidget.html#GtkAlign" title="enum GtkAlign">GtkAlign</a></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="GtkWidget.object-hierarchy"></a><h2>Object Hierarchy</h2>
<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobject/gobject-Boxed-Types.html">GBoxed</a>
    <span class="lineart">╰──</span> GtkRequisition
    GObject
    <span class="lineart">╰──</span> GInitiallyUnowned
        <span class="lineart">╰──</span> GtkWidget
            <span class="lineart">├──</span> <a class="link" href="GtkContainer.html" title="GtkContainer">GtkContainer</a>
            <span class="lineart">├──</span> <a class="link" href="GtkMisc.html" title="GtkMisc">GtkMisc</a>
            <span class="lineart">├──</span> <a class="link" href="GtkCalendar.html" title="GtkCalendar">GtkCalendar</a>
            <span class="lineart">├──</span> <a class="link" href="GtkCellView.html" title="GtkCellView">GtkCellView</a>
            <span class="lineart">├──</span> <a class="link" href="GtkDrawingArea.html" title="GtkDrawingArea">GtkDrawingArea</a>
            <span class="lineart">├──</span> <a class="link" href="GtkEntry.html" title="GtkEntry">GtkEntry</a>
            <span class="lineart">├──</span> <a class="link" href="GtkGLArea.html" title="GtkGLArea">GtkGLArea</a>
            <span class="lineart">├──</span> <a class="link" href="GtkRange.html" title="GtkRange">GtkRange</a>
            <span class="lineart">├──</span> <a class="link" href="GtkSeparator.html" title="GtkSeparator">GtkSeparator</a>
            <span class="lineart">├──</span> <a class="link" href="GtkHSV.html" title="GtkHSV">GtkHSV</a>
            <span class="lineart">├──</span> <a class="link" href="GtkInvisible.html" title="GtkInvisible">GtkInvisible</a>
            <span class="lineart">├──</span> <a class="link" href="GtkProgressBar.html" title="GtkProgressBar">GtkProgressBar</a>
            <span class="lineart">├──</span> <a class="link" href="GtkSpinner.html" title="GtkSpinner">GtkSpinner</a>
            <span class="lineart">├──</span> <a class="link" href="GtkSwitch.html" title="GtkSwitch">GtkSwitch</a>
            <span class="lineart">╰──</span> <a class="link" href="GtkLevelBar.html" title="GtkLevelBar">GtkLevelBar</a>
</pre>
</div>
<div class="refsect1">
<a name="GtkWidget.derived-interfaces"></a><h2>Known Derived Interfaces</h2>
<p>
GtkWidget is required by
 <a class="link" href="GtkActionable.html" title="GtkActionable">GtkActionable</a>,  <a class="link" href="GtkAppChooser.html" title="GtkAppChooser">GtkAppChooser</a>,  <a class="link" href="GtkCellEditable.html" title="GtkCellEditable">GtkCellEditable</a> and  <a class="link" href="GtkToolShell.html" title="GtkToolShell">GtkToolShell</a>.</p>
</div>
<div class="refsect1">
<a name="GtkWidget.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
<p>
GtkWidget implements
 AtkImplementorIface and  <a class="link" href="GtkBuildable.html" title="GtkBuildable">GtkBuildable</a>.</p>
</div>
<div class="refsect1">
<a name="GtkWidget.includes"></a><h2>Includes</h2>
<pre class="synopsis">#include &lt;gtk/gtk.h&gt;
</pre>
</div>
<div class="refsect1">
<a name="GtkWidget.description"></a><h2>Description</h2>
<p>GtkWidget is the base class all widgets in GTK+ derive from. It manages the
widget lifecycle, states and style.</p>
<div class="refsect2">
<a name="geometry-management"></a><h3>Height-for-width Geometry Management</h3>
<p>GTK+ uses a height-for-width (and width-for-height) geometry management
system. Height-for-width means that a widget can change how much
vertical space it needs, depending on the amount of horizontal space
that it is given (and similar for width-for-height). The most common
example is a label that reflows to fill up the available width, wraps
to fewer lines, and therefore needs less height.</p>
<p>Height-for-width geometry management is implemented in GTK+ by way
of five virtual methods:</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem"><p><a class="link" href="GtkWidget.html#GtkWidgetClass.get-request-mode"><code class="function">GtkWidgetClass.get_request_mode()</code></a></p></li>
<li class="listitem"><p><a class="link" href="GtkWidget.html#GtkWidgetClass.get-preferred-width"><code class="function">GtkWidgetClass.get_preferred_width()</code></a></p></li>
<li class="listitem"><p><a class="link" href="GtkWidget.html#GtkWidgetClass.get-preferred-height"><code class="function">GtkWidgetClass.get_preferred_height()</code></a></p></li>
<li class="listitem"><p><a class="link" href="GtkWidget.html#GtkWidgetClass.get-preferred-height-for-width"><code class="function">GtkWidgetClass.get_preferred_height_for_width()</code></a></p></li>
<li class="listitem"><p><a class="link" href="GtkWidget.html#GtkWidgetClass.get-preferred-width-for-height"><code class="function">GtkWidgetClass.get_preferred_width_for_height()</code></a></p></li>
<li class="listitem"><p><a class="link" href="GtkWidget.html#GtkWidgetClass.get-preferred-height-and-baseline-for-width"><code class="function">GtkWidgetClass.get_preferred_height_and_baseline_for_width()</code></a></p></li>
</ul></div>
<p>There are some important things to keep in mind when implementing
height-for-width and when using it in container implementations.</p>
<p>The geometry management system will query a widget hierarchy in
only one orientation at a time. When widgets are initially queried
for their minimum sizes it is generally done in two initial passes
in the <a class="link" href="GtkWidget.html#GtkSizeRequestMode" title="enum GtkSizeRequestMode"><span class="type">GtkSizeRequestMode</span></a> chosen by the toplevel.</p>
<p>For example, when queried in the normal
<a class="link" href="GtkWidget.html#GTK-SIZE-REQUEST-HEIGHT-FOR-WIDTH:CAPS"><code class="literal">GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTH</code></a> mode:
First, the default minimum and natural width for each widget
in the interface will be computed using <a class="link" href="GtkWidget.html#gtk-widget-get-preferred-width" title="gtk_widget_get_preferred_width ()"><code class="function">gtk_widget_get_preferred_width()</code></a>.
Because the preferred widths for each container depend on the preferred
widths of their children, this information propagates up the hierarchy,
and finally a minimum and natural width is determined for the entire
toplevel. Next, the toplevel will use the minimum width to query for the
minimum height contextual to that width using
<a class="link" href="GtkWidget.html#gtk-widget-get-preferred-height-for-width" title="gtk_widget_get_preferred_height_for_width ()"><code class="function">gtk_widget_get_preferred_height_for_width()</code></a>, which will also be a highly
recursive operation. The minimum height for the minimum width is normally
used to set the minimum size constraint on the toplevel
(unless <a class="link" href="GtkWindow.html#gtk-window-set-geometry-hints" title="gtk_window_set_geometry_hints ()"><code class="function">gtk_window_set_geometry_hints()</code></a> is explicitly used instead).</p>
<p>After the toplevel window has initially requested its size in both
dimensions it can go on to allocate itself a reasonable size (or a size
previously specified with <a class="link" href="GtkWindow.html#gtk-window-set-default-size" title="gtk_window_set_default_size ()"><code class="function">gtk_window_set_default_size()</code></a>). During the
recursive allocation process it’s important to note that request cycles
will be recursively executed while container widgets allocate their children.
Each container widget, once allocated a size, will go on to first share the
space in one orientation among its children and then request each child's
height for its target allocated width or its width for allocated height,
depending. In this way a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> will typically be requested its size
a number of times before actually being allocated a size. The size a
widget is finally allocated can of course differ from the size it has
requested. For this reason, <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> caches a  small number of results
to avoid re-querying for the same sizes in one allocation cycle.</p>
<p>See
GtkContainer’s geometry management section
to learn more about how height-for-width allocations are performed
by container widgets.</p>
<p>If a widget does move content around to intelligently use up the
allocated size then it must support the request in both
<span class="type">GtkSizeRequestModes</span> even if the widget in question only
trades sizes in a single orientation.</p>
<p>For instance, a <a class="link" href="GtkLabel.html" title="GtkLabel"><span class="type">GtkLabel</span></a> that does height-for-width word wrapping
will not expect to have <a class="link" href="GtkWidget.html#GtkWidgetClass.get-preferred-height"><code class="function">GtkWidgetClass.get_preferred_height()</code></a> called
because that call is specific to a width-for-height request. In this
case the label must return the height required for its own minimum
possible width. By following this rule any widget that handles
height-for-width or width-for-height requests will always be allocated
at least enough space to fit its own content.</p>
<p>Here are some examples of how a <a class="link" href="GtkWidget.html#GTK-SIZE-REQUEST-HEIGHT-FOR-WIDTH:CAPS"><code class="literal">GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTH</code></a> widget
generally deals with width-for-height requests, for <a class="link" href="GtkWidget.html#GtkWidgetClass.get-preferred-height"><code class="function">GtkWidgetClass.get_preferred_height()</code></a>
it will do:</p>
<div class="informalexample">
  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
    <tbody>
      <tr>
        <td class="listing_lines" align="right"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25</pre></td>
        <td class="listing_code"><pre class="programlisting"><span class="k">static</span> <span class="kt">void</span>
<span class="n">foo_widget_get_preferred_height</span> <span class="p">(</span><span class="n">GtkWidget</span> <span class="o">*</span><span class="n">widget</span><span class="p">,</span>
                                 <span class="n">gint</span> <span class="o">*</span><span class="n">min_height</span><span class="p">,</span>
                                 <span class="n">gint</span> <span class="o">*</span><span class="n">nat_height</span><span class="p">)</span>
<span class="p">{</span>
   <span class="k">if</span> <span class="p">(</span><span class="n">i_am_in_height_for_width_mode</span><span class="p">)</span>
     <span class="p">{</span>
       <span class="n">gint</span> <span class="n">min_width</span><span class="p">,</span> <span class="n">nat_width</span><span class="p">;</span>

       <span class="n">GTK_WIDGET_GET_CLASS</span> <span class="p">(</span><span class="n">widget</span><span class="p">)</span><span class="o">-&gt;</span><span class="n">get_preferred_width</span> <span class="p">(</span><span class="n">widget</span><span class="p">,</span>
                                                           <span class="o">&amp;</span><span class="n">min_width</span><span class="p">,</span>
                                                           <span class="o">&amp;</span><span class="n">nat_width</span><span class="p">);</span>
       <span class="n">GTK_WIDGET_GET_CLASS</span> <span class="p">(</span><span class="n">widget</span><span class="p">)</span><span class="o">-&gt;</span><span class="n">get_preferred_height_for_width</span>
                                                          <span class="p">(</span><span class="n">widget</span><span class="p">,</span>
                                                           <span class="n">min_width</span><span class="p">,</span>
                                                           <span class="n">min_height</span><span class="p">,</span>
                                                           <span class="n">nat_height</span><span class="p">);</span>
     <span class="p">}</span>
   <span class="k">else</span>
     <span class="p">{</span>
        <span class="p">...</span> <span class="n">some</span> <span class="n">widgets</span> <span class="k">do</span> <span class="n">both</span><span class="p">.</span> <span class="n">For</span> <span class="n">instance</span><span class="p">,</span> <span class="k">if</span> <span class="n">a</span> <span class="n">GtkLabel</span> <span class="n">is</span>
        <span class="n">rotated</span> <span class="n">to</span> <span class="mi">90</span> <span class="n">degrees</span> <span class="n">it</span> <span class="n">will</span> <span class="k">return</span> <span class="n">the</span> <span class="n">minimum</span> <span class="n">and</span>
        <span class="n">natural</span> <span class="n">height</span> <span class="k">for</span> <span class="n">the</span> <span class="n">rotated</span> <span class="n">label</span> <span class="n">here</span><span class="p">.</span>
     <span class="p">}</span>
<span class="p">}</span></pre></td>
      </tr>
    </tbody>
  </table>
</div>

<p></p>
<p>And in <a class="link" href="GtkWidget.html#GtkWidgetClass.get-preferred-width-for-height"><code class="function">GtkWidgetClass.get_preferred_width_for_height()</code></a> it will simply return
the minimum and natural width:</p>
<div class="informalexample">
  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
    <tbody>
      <tr>
        <td class="listing_lines" align="right"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19</pre></td>
        <td class="listing_code"><pre class="programlisting"><span class="k">static</span> <span class="kt">void</span>
<span class="n">foo_widget_get_preferred_width_for_height</span> <span class="p">(</span><span class="n">GtkWidget</span> <span class="o">*</span><span class="n">widget</span><span class="p">,</span>
                                           <span class="n">gint</span> <span class="n">for_height</span><span class="p">,</span>
                                           <span class="n">gint</span> <span class="o">*</span><span class="n">min_width</span><span class="p">,</span>
                                           <span class="n">gint</span> <span class="o">*</span><span class="n">nat_width</span><span class="p">)</span>
<span class="p">{</span>
   <span class="k">if</span> <span class="p">(</span><span class="n">i_am_in_height_for_width_mode</span><span class="p">)</span>
     <span class="p">{</span>
       <span class="n">GTK_WIDGET_GET_CLASS</span> <span class="p">(</span><span class="n">widget</span><span class="p">)</span><span class="o">-&gt;</span><span class="n">get_preferred_width</span> <span class="p">(</span><span class="n">widget</span><span class="p">,</span>
                                                           <span class="n">min_width</span><span class="p">,</span>
                                                           <span class="n">nat_width</span><span class="p">);</span>
     <span class="p">}</span>
   <span class="k">else</span>
     <span class="p">{</span>
        <span class="p">...</span> <span class="n">again</span> <span class="k">if</span> <span class="n">a</span> <span class="n">widget</span> <span class="n">is</span> <span class="n">sometimes</span> <span class="n">operating</span> <span class="n">in</span>
        <span class="n">width</span><span class="o">-</span><span class="k">for</span><span class="o">-</span><span class="n">height</span> <span class="n">mode</span> <span class="p">(</span><span class="n">like</span> <span class="n">a</span> <span class="n">rotated</span> <span class="n">GtkLabel</span><span class="p">)</span> <span class="n">it</span> <span class="n">can</span> <span class="n">go</span>
        <span class="n">ahead</span> <span class="n">and</span> <span class="k">do</span> <span class="n">its</span> <span class="n">real</span> <span class="n">width</span> <span class="k">for</span> <span class="n">height</span> <span class="n">calculation</span> <span class="n">here</span><span class="p">.</span>
     <span class="p">}</span>
<span class="p">}</span></pre></td>
      </tr>
    </tbody>
  </table>
</div>

<p></p>
<p>Often a widget needs to get its own request during size request or
allocation. For example, when computing height it may need to also
compute width. Or when deciding how to use an allocation, the widget
may need to know its natural size. In these cases, the widget should
be careful to call its virtual methods directly, like this:</p>
<div class="informalexample">
  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
    <tbody>
      <tr>
        <td class="listing_lines" align="right"><pre>1
2
3</pre></td>
        <td class="listing_code"><pre class="programlisting"><span class="n">GTK_WIDGET_GET_CLASS</span><span class="p">(</span><span class="n">widget</span><span class="p">)</span><span class="o">-&gt;</span><span class="n">get_preferred_width</span> <span class="p">(</span><span class="n">widget</span><span class="p">,</span>
                                                   <span class="o">&amp;</span><span class="n">min</span><span class="p">,</span>
                                                   <span class="o">&amp;</span><span class="n">natural</span><span class="p">);</span></pre></td>
      </tr>
    </tbody>
  </table>
</div>

<p></p>
<p>It will not work to use the wrapper functions, such as
<a class="link" href="GtkWidget.html#gtk-widget-get-preferred-width" title="gtk_widget_get_preferred_width ()"><code class="function">gtk_widget_get_preferred_width()</code></a> inside your own size request
implementation. These return a request adjusted by <a class="link" href="GtkSizeGroup.html" title="GtkSizeGroup"><span class="type">GtkSizeGroup</span></a>
and by the <a class="link" href="GtkWidget.html#GtkWidgetClass.adjust-size-request"><code class="function">GtkWidgetClass.adjust_size_request()</code></a> virtual method. If a
widget used the wrappers inside its virtual method implementations,
then the adjustments (such as widget margins) would be applied
twice. GTK+ therefore does not allow this and will warn if you try
to do it.</p>
<p>Of course if you are getting the size request for
another widget, such as a child of a
container, you must use the wrapper APIs.
Otherwise, you would not properly consider widget margins,
<a class="link" href="GtkSizeGroup.html" title="GtkSizeGroup"><span class="type">GtkSizeGroup</span></a>, and so forth.</p>
<p>Since 3.10 GTK+ also supports baseline vertical alignment of widgets. This
means that widgets are positioned such that the typographical baseline of
widgets in the same row are aligned. This happens if a widget supports baselines,
has a vertical alignment of <a class="link" href="GtkWidget.html#GTK-ALIGN-BASELINE:CAPS"><code class="literal">GTK_ALIGN_BASELINE</code></a>, and is inside a container
that supports baselines and has a natural “row” that it aligns to the baseline,
or a baseline assigned to it by the grandparent.</p>
<p>Baseline alignment support for a widget is done by the <a class="link" href="GtkWidget.html#GtkWidgetClass.get-preferred-height-and-baseline-for-width"><code class="function">GtkWidgetClass.get_preferred_height_and_baseline_for_width()</code></a>
virtual function. It allows you to report a baseline in combination with the
minimum and natural height. If there is no baseline you can return -1 to indicate
this. The default implementation of this virtual function calls into the
<a class="link" href="GtkWidget.html#GtkWidgetClass.get-preferred-height"><code class="function">GtkWidgetClass.get_preferred_height()</code></a> and <a class="link" href="GtkWidget.html#GtkWidgetClass.get-preferred-height-for-width"><code class="function">GtkWidgetClass.get_preferred_height_for_width()</code></a>,
so if baselines are not supported it doesn’t need to be implemented.</p>
<p>If a widget ends up baseline aligned it will be allocated all the space in the parent
as if it was <a class="link" href="GtkWidget.html#GTK-ALIGN-FILL:CAPS"><code class="literal">GTK_ALIGN_FILL</code></a>, but the selected baseline can be found via <a class="link" href="GtkWidget.html#gtk-widget-get-allocated-baseline" title="gtk_widget_get_allocated_baseline ()"><code class="function">gtk_widget_get_allocated_baseline()</code></a>.
If this has a value other than -1 you need to align the widget such that the baseline
appears at the position.</p>
</div>
<hr>
<div class="refsect2">
<a name="id-1.3.20.2.13.4"></a><h3>Style Properties</h3>
<p><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> introduces “style
properties” - these are basically object properties that are stored
not on the object, but in the style object associated to the widget. Style
properties are set in <a class="link" href="gtk3-Resource-Files.html" title="Resource Files">resource files</a>.
This mechanism is used for configuring such things as the location of the
scrollbar arrows through the theme, giving theme authors more control over the
look of applications without the need to write a theme engine in C.</p>
<p>Use <a class="link" href="GtkWidget.html#gtk-widget-class-install-style-property" title="gtk_widget_class_install_style_property ()"><code class="function">gtk_widget_class_install_style_property()</code></a> to install style properties for
a widget class, <a class="link" href="GtkWidget.html#gtk-widget-class-find-style-property" title="gtk_widget_class_find_style_property ()"><code class="function">gtk_widget_class_find_style_property()</code></a> or
<a class="link" href="GtkWidget.html#gtk-widget-class-list-style-properties" title="gtk_widget_class_list_style_properties ()"><code class="function">gtk_widget_class_list_style_properties()</code></a> to get information about existing
style properties and <a class="link" href="GtkWidget.html#gtk-widget-style-get-property" title="gtk_widget_style_get_property ()"><code class="function">gtk_widget_style_get_property()</code></a>, <a class="link" href="GtkWidget.html#gtk-widget-style-get" title="gtk_widget_style_get ()"><code class="function">gtk_widget_style_get()</code></a> or
<a class="link" href="GtkWidget.html#gtk-widget-style-get-valist" title="gtk_widget_style_get_valist ()"><code class="function">gtk_widget_style_get_valist()</code></a> to obtain the value of a style property.</p>
</div>
<hr>
<div class="refsect2">
<a name="id-1.3.20.2.13.5"></a><h3>GtkWidget as GtkBuildable</h3>
<p>The GtkWidget implementation of the GtkBuildable interface supports a
custom &lt;accelerator&gt; element, which has attributes named ”key”, ”modifiers”
and ”signal” and allows to specify accelerators.</p>
<p>An example of a UI definition fragment specifying an accelerator:</p>
<div class="informalexample">
  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
    <tbody>
      <tr>
        <td class="listing_lines" align="right"><pre>1
2
3</pre></td>
        <td class="listing_code"><pre class="programlisting"><span class="o">&lt;</span><span class="n">object</span> <span class="n">class</span><span class="o">=</span><span class="s">&quot;GtkButton&quot;</span><span class="o">&gt;</span>
  <span class="o">&lt;</span><span class="n">accelerator</span> <span class="n">key</span><span class="o">=</span><span class="s">&quot;q&quot;</span> <span class="n">modifiers</span><span class="o">=</span><span class="s">&quot;GDK_CONTROL_MASK&quot;</span> <span class="n">signal</span><span class="o">=</span><span class="s">&quot;clicked&quot;</span><span class="o">/&gt;</span>
<span class="o">&lt;/</span><span class="n">object</span><span class="o">&gt;</span></pre></td>
      </tr>
    </tbody>
  </table>
</div>

<p></p>
<p>In addition to accelerators, GtkWidget also support a custom &lt;accessible&gt;
element, which supports actions and relations. Properties on the accessible
implementation of an object can be set by accessing the internal child
“accessible” of a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a>.</p>
<p>An example of a UI definition fragment specifying an accessible:</p>
<div class="informalexample">
  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
    <tbody>
      <tr>
        <td class="listing_lines" align="right"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14</pre></td>
        <td class="listing_code"><pre class="programlisting"><span class="o">&lt;</span><span class="n">object</span> <span class="n">class</span><span class="o">=</span><span class="s">&quot;GtkLabel&quot;</span> <span class="n">id</span><span class="o">=</span><span class="s">&quot;label1&quot;</span><span class="o">/&gt;</span>
  <span class="o">&lt;</span><span class="n">property</span> <span class="n">name</span><span class="o">=</span><span class="s">&quot;label&quot;</span><span class="o">&gt;</span><span class="n">I</span> <span class="n">am</span> <span class="n">a</span> <span class="n">Label</span> <span class="k">for</span> <span class="n">a</span> <span class="n">Button</span><span class="o">&lt;/</span><span class="n">property</span><span class="o">&gt;</span>
<span class="o">&lt;/</span><span class="n">object</span><span class="o">&gt;</span>
<span class="o">&lt;</span><span class="n">object</span> <span class="n">class</span><span class="o">=</span><span class="s">&quot;GtkButton&quot;</span> <span class="n">id</span><span class="o">=</span><span class="s">&quot;button1&quot;</span><span class="o">&gt;</span>
  <span class="o">&lt;</span><span class="n">accessibility</span><span class="o">&gt;</span>
    <span class="o">&lt;</span><span class="n">action</span> <span class="n">action_name</span><span class="o">=</span><span class="s">&quot;click&quot;</span> <span class="n">translatable</span><span class="o">=</span><span class="s">&quot;yes&quot;</span><span class="o">&gt;</span><span class="n">Click</span> <span class="n">the</span> <span class="n">button</span><span class="p">.</span><span class="o">&lt;/</span><span class="n">action</span><span class="o">&gt;</span>
    <span class="o">&lt;</span><span class="n">relation</span> <span class="n">target</span><span class="o">=</span><span class="s">&quot;label1&quot;</span> <span class="n">type</span><span class="o">=</span><span class="s">&quot;labelled-by&quot;</span><span class="o">/&gt;</span>
  <span class="o">&lt;/</span><span class="n">accessibility</span><span class="o">&gt;</span>
  <span class="o">&lt;</span><span class="n">child</span> <span class="n">internal</span><span class="o">-</span><span class="n">child</span><span class="o">=</span><span class="s">&quot;accessible&quot;</span><span class="o">&gt;</span>
    <span class="o">&lt;</span><span class="n">object</span> <span class="n">class</span><span class="o">=</span><span class="s">&quot;AtkObject&quot;</span> <span class="n">id</span><span class="o">=</span><span class="s">&quot;a11y-button1&quot;</span><span class="o">&gt;</span>
      <span class="o">&lt;</span><span class="n">property</span> <span class="n">name</span><span class="o">=</span><span class="s">&quot;accessible-name&quot;</span><span class="o">&gt;</span><span class="n">Clickable</span> <span class="n">Button</span><span class="o">&lt;/</span><span class="n">property</span><span class="o">&gt;</span>
    <span class="o">&lt;/</span><span class="n">object</span><span class="o">&gt;</span>
  <span class="o">&lt;/</span><span class="n">child</span><span class="o">&gt;</span>
<span class="o">&lt;/</span><span class="n">object</span><span class="o">&gt;</span></pre></td>
      </tr>
    </tbody>
  </table>
</div>

<p></p>
<p>Finally, GtkWidget allows style information such as style classes to
be associated with widgets, using the custom &lt;style&gt; element:</p>
<div class="informalexample">
  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
    <tbody>
      <tr>
        <td class="listing_lines" align="right"><pre>1
2
3
4
5
6</pre></td>
        <td class="listing_code"><pre class="programlisting"><span class="o">&lt;</span><span class="n">object</span> <span class="n">class</span><span class="o">=</span><span class="s">&quot;GtkButton&quot;</span> <span class="n">id</span><span class="o">=</span><span class="s">&quot;button1&quot;</span><span class="o">&gt;</span>
  <span class="o">&lt;</span><span class="n">style</span><span class="o">&gt;</span>
    <span class="o">&lt;</span><span class="n">class</span> <span class="n">name</span><span class="o">=</span><span class="s">&quot;my-special-button-class&quot;</span><span class="o">/&gt;</span>
    <span class="o">&lt;</span><span class="n">class</span> <span class="n">name</span><span class="o">=</span><span class="s">&quot;dark-button&quot;</span><span class="o">/&gt;</span>
  <span class="o">&lt;/</span><span class="n">style</span><span class="o">&gt;</span>
<span class="o">&lt;/</span><span class="n">object</span><span class="o">&gt;</span></pre></td>
      </tr>
    </tbody>
  </table>
</div>

<p></p>
</div>
<hr>
<div class="refsect2">
<a name="composite-templates"></a><h3>Building composite widgets from template XML</h3>
<p>GtkWidget exposes some facilities to automate the procedure
of creating composite widgets using <a class="link" href="GtkBuilder.html" title="GtkBuilder"><span class="type">GtkBuilder</span></a> interface description
language.</p>
<p>To create composite widgets with <a class="link" href="GtkBuilder.html" title="GtkBuilder"><span class="type">GtkBuilder</span></a> XML, one must associate
the interface description with the widget class at class initialization
time using <a class="link" href="GtkWidget.html#gtk-widget-class-set-template" title="gtk_widget_class_set_template ()"><code class="function">gtk_widget_class_set_template()</code></a>.</p>
<p>The interface description semantics expected in composite template descriptions
is slightly different from regular <a class="link" href="GtkBuilder.html" title="GtkBuilder"><span class="type">GtkBuilder</span></a> XML.</p>
<p>Unlike regular interface descriptions, <a class="link" href="GtkWidget.html#gtk-widget-class-set-template" title="gtk_widget_class_set_template ()"><code class="function">gtk_widget_class_set_template()</code></a> will
expect a &lt;template&gt; tag as a direct child of the toplevel &lt;interface&gt;
tag. The &lt;template&gt; tag must specify the “class” attribute which must be
the type name of the widget. Optionally, the “parent” attribute may be
specified to specify the direct parent type of the widget type, this is
ignored by the GtkBuilder but required for Glade to introspect what kind
of properties and internal children exist for a given type when the actual
type does not exist.</p>
<p>The XML which is contained inside the &lt;template&gt; tag behaves as if it were
added to the &lt;object&gt; tag defining <em class="parameter"><code>widget</code></em>
 itself. You may set properties
on <em class="parameter"><code>widget</code></em>
 by inserting &lt;property&gt; tags into the &lt;template&gt; tag, and also
add &lt;child&gt; tags to add children and extend <em class="parameter"><code>widget</code></em>
 in the normal way you
would with &lt;object&gt; tags.</p>
<p>Additionally, &lt;object&gt; tags can also be added before and after the initial
&lt;template&gt; tag in the normal way, allowing one to define auxiliary objects
which might be referenced by other widgets declared as children of the
&lt;template&gt; tag.</p>
<p>An example of a GtkBuilder Template Definition:</p>
<div class="informalexample">
  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
    <tbody>
      <tr>
        <td class="listing_lines" align="right"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17</pre></td>
        <td class="listing_code"><pre class="programlisting"><span class="o">&lt;</span><span class="n">interface</span><span class="o">&gt;</span>
  <span class="o">&lt;</span><span class="n">template</span> <span class="n">class</span><span class="o">=</span><span class="s">&quot;FooWidget&quot;</span> <span class="n">parent</span><span class="o">=</span><span class="s">&quot;GtkBox&quot;</span><span class="o">&gt;</span>
    <span class="o">&lt;</span><span class="n">property</span> <span class="n">name</span><span class="o">=</span><span class="s">&quot;orientation&quot;</span><span class="o">&gt;</span><span class="n">GTK_ORIENTATION_HORIZONTAL</span><span class="o">&lt;/</span><span class="n">property</span><span class="o">&gt;</span>
    <span class="o">&lt;</span><span class="n">property</span> <span class="n">name</span><span class="o">=</span><span class="s">&quot;spacing&quot;</span><span class="o">&gt;</span><span class="mi">4</span><span class="o">&lt;/</span><span class="n">property</span><span class="o">&gt;</span>
    <span class="o">&lt;</span><span class="n">child</span><span class="o">&gt;</span>
      <span class="o">&lt;</span><span class="n">object</span> <span class="n">class</span><span class="o">=</span><span class="s">&quot;GtkButton&quot;</span> <span class="n">id</span><span class="o">=</span><span class="s">&quot;hello_button&quot;</span><span class="o">&gt;</span>
        <span class="o">&lt;</span><span class="n">property</span> <span class="n">name</span><span class="o">=</span><span class="s">&quot;label&quot;</span><span class="o">&gt;</span><span class="n">Hello</span> <span class="n">World</span><span class="o">&lt;/</span><span class="n">property</span><span class="o">&gt;</span>
        <span class="o">&lt;</span><span class="n">signal</span> <span class="n">name</span><span class="o">=</span><span class="s">&quot;clicked&quot;</span> <span class="n">handler</span><span class="o">=</span><span class="s">&quot;hello_button_clicked&quot;</span> <span class="n">object</span><span class="o">=</span><span class="s">&quot;FooWidget&quot;</span> <span class="n">swapped</span><span class="o">=</span><span class="s">&quot;yes&quot;</span><span class="o">/&gt;</span>
      <span class="o">&lt;/</span><span class="n">object</span><span class="o">&gt;</span>
    <span class="o">&lt;/</span><span class="n">child</span><span class="o">&gt;</span>
    <span class="o">&lt;</span><span class="n">child</span><span class="o">&gt;</span>
      <span class="o">&lt;</span><span class="n">object</span> <span class="n">class</span><span class="o">=</span><span class="s">&quot;GtkButton&quot;</span> <span class="n">id</span><span class="o">=</span><span class="s">&quot;goodbye_button&quot;</span><span class="o">&gt;</span>
        <span class="o">&lt;</span><span class="n">property</span> <span class="n">name</span><span class="o">=</span><span class="s">&quot;label&quot;</span><span class="o">&gt;</span><span class="n">Goodbye</span> <span class="n">World</span><span class="o">&lt;/</span><span class="n">property</span><span class="o">&gt;</span>
      <span class="o">&lt;/</span><span class="n">object</span><span class="o">&gt;</span>
    <span class="o">&lt;/</span><span class="n">child</span><span class="o">&gt;</span>
  <span class="o">&lt;/</span><span class="n">template</span><span class="o">&gt;</span>
<span class="o">&lt;/</span><span class="n">interface</span><span class="o">&gt;</span></pre></td>
      </tr>
    </tbody>
  </table>
</div>

<p></p>
<p>Typically, you'll place the template fragment into a file that is
bundled with your project, using <span class="type">GResource</span>. In order to load the
template, you need to call <a class="link" href="GtkWidget.html#gtk-widget-class-set-template-from-resource" title="gtk_widget_class_set_template_from_resource ()"><code class="function">gtk_widget_class_set_template_from_resource()</code></a>
from the class initialization of your <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> type:</p>
<div class="informalexample">
  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
    <tbody>
      <tr>
        <td class="listing_lines" align="right"><pre>1
2
3
4
5
6
7
8</pre></td>
        <td class="listing_code"><pre class="programlisting"><span class="k">static</span> <span class="kt">void</span>
<span class="n">foo_widget_class_init</span> <span class="p">(</span><span class="n">FooWidgetClass</span> <span class="o">*</span><span class="n">klass</span><span class="p">)</span>
<span class="p">{</span>
  <span class="c1">// ...</span>

  <span class="n">gtk_widget_class_set_template_from_resource</span> <span class="p">(</span><span class="n">GTK_WIDGET_CLASS</span> <span class="p">(</span><span class="n">klass</span><span class="p">),</span>
                                               <span class="s">&quot;/com/example/ui/foowidget.ui&quot;</span><span class="p">);</span>
<span class="p">}</span></pre></td>
      </tr>
    </tbody>
  </table>
</div>

<p></p>
<p>You will also need to call <a class="link" href="GtkWidget.html#gtk-widget-init-template" title="gtk_widget_init_template ()"><code class="function">gtk_widget_init_template()</code></a> from the instance
initialization function:</p>
<div class="informalexample">
  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
    <tbody>
      <tr>
        <td class="listing_lines" align="right"><pre>1
2
3
4
5
6</pre></td>
        <td class="listing_code"><pre class="programlisting"><span class="k">static</span> <span class="kt">void</span>
<span class="n">foo_widget_init</span> <span class="p">(</span><span class="n">FooWidget</span> <span class="o">*</span><span class="n">self</span><span class="p">)</span>
<span class="p">{</span>
  <span class="c1">// ...</span>
  <span class="n">gtk_widget_init_template</span> <span class="p">(</span><span class="n">GTK_WIDGET</span> <span class="p">(</span><span class="n">self</span><span class="p">));</span>
<span class="p">}</span></pre></td>
      </tr>
    </tbody>
  </table>
</div>

<p></p>
<p>You can access widgets defined in the template using the
<a class="link" href="GtkWidget.html#gtk-widget-get-template-child" title="gtk_widget_get_template_child ()"><code class="function">gtk_widget_get_template_child()</code></a> function, but you will typically declare
a pointer in the instance private data structure of your type using the same
name as the widget in the template definition, and call
<a class="link" href="GtkWidget.html#gtk-widget-class-bind-template-child-private" title="gtk_widget_class_bind_template_child_private()"><code class="function">gtk_widget_class_bind_template_child_private()</code></a> with that name, e.g.</p>
<div class="informalexample">
  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
    <tbody>
      <tr>
        <td class="listing_lines" align="right"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24</pre></td>
        <td class="listing_code"><pre class="programlisting"><span class="k">typedef</span> <span class="k">struct</span> <span class="p">{</span>
  <span class="n">GtkWidget</span> <span class="o">*</span><span class="n">hello_button</span><span class="p">;</span>
  <span class="n">GtkWidget</span> <span class="o">*</span><span class="n">goodbye_button</span><span class="p">;</span>
<span class="p">}</span> <span class="n">FooWidgetPrivate</span><span class="p">;</span>

<span class="n">G_DEFINE_TYPE_WITH_PRIVATE</span> <span class="p">(</span><span class="n">FooWidget</span><span class="p">,</span> <span class="n">foo_widget</span><span class="p">,</span> <span class="n">GTK_TYPE_BOX</span><span class="p">)</span>

<span class="k">static</span> <span class="kt">void</span>
<span class="n">foo_widget_class_init</span> <span class="p">(</span><span class="n">FooWidgetClass</span> <span class="o">*</span><span class="n">klass</span><span class="p">)</span>
<span class="p">{</span>
  <span class="c1">// ...</span>
  <span class="n">gtk_widget_class_set_template_from_resource</span> <span class="p">(</span><span class="n">GTK_WIDGET_CLASS</span> <span class="p">(</span><span class="n">klass</span><span class="p">),</span>
                                               <span class="s">&quot;/com/example/ui/foowidget.ui&quot;</span><span class="p">);</span>
  <span class="n">gtk_widget_class_bind_template_child_private</span> <span class="p">(</span><span class="n">GTK_WIDGET_CLASS</span> <span class="p">(</span><span class="n">klass</span><span class="p">),</span>
                                                <span class="n">FooWidget</span><span class="p">,</span> <span class="n">hello_button</span><span class="p">);</span>
  <span class="n">gtk_widget_class_bind_template_child_private</span> <span class="p">(</span><span class="n">GTK_WIDGET_CLASS</span> <span class="p">(</span><span class="n">klass</span><span class="p">),</span>
                                                <span class="n">FooWidget</span><span class="p">,</span> <span class="n">goodbye_button</span><span class="p">);</span>
<span class="p">}</span>

<span class="k">static</span> <span class="kt">void</span>
<span class="n">foo_widget_init</span> <span class="p">(</span><span class="n">FooWidget</span> <span class="o">*</span><span class="n">widget</span><span class="p">)</span>
<span class="p">{</span>

<span class="p">}</span></pre></td>
      </tr>
    </tbody>
  </table>
</div>

<p></p>
<p>You can also use <a class="link" href="GtkWidget.html#gtk-widget-class-bind-template-callback" title="gtk_widget_class_bind_template_callback()"><code class="function">gtk_widget_class_bind_template_callback()</code></a> to connect a signal
callback defined in the template with a function visible in the scope of the
class, e.g.</p>
<div class="informalexample">
  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
    <tbody>
      <tr>
        <td class="listing_lines" align="right"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17</pre></td>
        <td class="listing_code"><pre class="programlisting"><span class="c1">// the signal handler has the instance and user data swapped</span>
<span class="c1">// because of the swapped=&quot;yes&quot; attribute in the template XML</span>
<span class="k">static</span> <span class="kt">void</span>
<span class="n">hello_button_clicked</span> <span class="p">(</span><span class="n">FooWidget</span> <span class="o">*</span><span class="n">self</span><span class="p">,</span>
                      <span class="n">GtkButton</span> <span class="o">*</span><span class="n">button</span><span class="p">)</span>
<span class="p">{</span>
  <span class="n">g_print</span> <span class="p">(</span><span class="s">&quot;Hello, world!</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">);</span>
<span class="p">}</span>

<span class="k">static</span> <span class="kt">void</span>
<span class="n">foo_widget_class_init</span> <span class="p">(</span><span class="n">FooWidgetClass</span> <span class="o">*</span><span class="n">klass</span><span class="p">)</span>
<span class="p">{</span>
  <span class="c1">// ...</span>
  <span class="n">gtk_widget_class_set_template_from_resource</span> <span class="p">(</span><span class="n">GTK_WIDGET_CLASS</span> <span class="p">(</span><span class="n">klass</span><span class="p">),</span>
                                               <span class="s">&quot;/com/example/ui/foowidget.ui&quot;</span><span class="p">);</span>
  <span class="n">gtk_widget_class_bind_template_callback</span> <span class="p">(</span><span class="n">GTK_WIDGET_CLASS</span> <span class="p">(</span><span class="n">klass</span><span class="p">),</span> <span class="n">hello_button_clicked</span><span class="p">);</span>
<span class="p">}</span></pre></td>
      </tr>
    </tbody>
  </table>
</div>

<p></p>
</div>
</div>
<div class="refsect1">
<a name="GtkWidget.functions_details"></a><h2>Functions</h2>
<div class="refsect2">
<a name="GtkCallback"></a><h3>GtkCallback ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
<span class="c_punctuation">(</span>*GtkCallback<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                <em class="parameter"><code><span class="type">gpointer</span> data</code></em>);</pre>
<p>The type of the callback functions used for e.g. iterating over
the children of a container, see <a class="link" href="GtkContainer.html#gtk-container-foreach" title="gtk_container_foreach ()"><code class="function">gtk_container_foreach()</code></a>.</p>
<div class="refsect3">
<a name="GtkCallback.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the widget to operate on</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>data</p></td>
<td class="parameter_description"><p>user-supplied data. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="This parameter is a 'user_data', for callbacks; many bindings can pass NULL here."><span class="acronym">closure</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-new"></a><h3>gtk_widget_new ()</h3>
<pre class="programlisting"><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="returnvalue">GtkWidget</span></a> *
gtk_widget_new (<em class="parameter"><code><span class="type">GType</span> type</code></em>,
                <em class="parameter"><code>const <span class="type">gchar</span> *first_property_name</code></em>,
                <em class="parameter"><code>...</code></em>);</pre>
<p>This is a convenience function for creating a widget and setting
its properties in one go. For example you might write:
<code class="literal">gtk_widget_new (GTK_TYPE_LABEL, "label", "Hello World", "xalign",
0.0, NULL)</code> to create a left-aligned label. Equivalent to
<code class="function">g_object_new()</code>, but returns a widget so you don’t have to
cast the object yourself.</p>
<div class="refsect3">
<a name="gtk-widget-new.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>type</p></td>
<td class="parameter_description"><p>type ID of the widget to create</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>first_property_name</p></td>
<td class="parameter_description"><p>name of first property to set</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>...</p></td>
<td class="parameter_description"><p>value of first property, followed by more properties,
<code class="literal">NULL</code>-terminated</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-new.returns"></a><h4>Returns</h4>
<p> a new <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> of type <em class="parameter"><code>widget_type</code></em>
</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-destroy"></a><h3>gtk_widget_destroy ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_destroy (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Destroys a widget.</p>
<p>When a widget is destroyed all references it holds on other objects
will be released:</p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem"><p>if the widget is inside a container, it will be removed from its
parent</p></li>
<li class="listitem"><p>if the widget is a container, all its children will be destroyed,
recursively</p></li>
<li class="listitem"><p>if the widget is a top level, it will be removed from the list
of top level widgets that GTK+ maintains internally</p></li>
</ul></div>
<p>It's expected that all references held on the widget will also
be released; you should connect to the <a class="link" href="GtkWidget.html#GtkWidget-destroy" title="The “destroy” signal"><span class="type">“destroy”</span></a> signal
if you hold a reference to <em class="parameter"><code>widget</code></em>
 and you wish to remove it when
this function is called. It is not necessary to do so if you are
implementing a <a class="link" href="GtkContainer.html" title="GtkContainer"><span class="type">GtkContainer</span></a>, as you'll be able to use the
<a class="link" href="GtkContainer.html#GtkContainerClass.remove"><code class="function">GtkContainerClass.remove()</code></a> virtual function for that.</p>
<p>It's important to notice that <a class="link" href="GtkWidget.html#gtk-widget-destroy" title="gtk_widget_destroy ()"><code class="function">gtk_widget_destroy()</code></a> will only cause
the <em class="parameter"><code>widget</code></em>
 to be finalized if no additional references, acquired
using <code class="function">g_object_ref()</code>, are held on it. In case additional references
are in place, the <em class="parameter"><code>widget</code></em>
 will be in an "inert" state after calling
this function; <em class="parameter"><code>widget</code></em>
 will still point to valid memory, allowing you
to release the references you hold, but you may not query the widget's
own state.</p>
<p>You should typically call this function on top level widgets, and
rarely on child widgets.</p>
<p>See also: <a class="link" href="GtkContainer.html#gtk-container-remove" title="gtk_container_remove ()"><code class="function">gtk_container_remove()</code></a></p>
<div class="refsect3">
<a name="gtk-widget-destroy.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-in-destruction"></a><h3>gtk_widget_in_destruction ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_widget_in_destruction (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Returns whether the widget is currently being destroyed.
This information can sometimes be used to avoid doing
unnecessary work.</p>
<div class="refsect3">
<a name="gtk-widget-in-destruction.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-in-destruction.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if <em class="parameter"><code>widget</code></em>
is being destroyed</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-destroyed"></a><h3>gtk_widget_destroyed ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_destroyed (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                      <em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> **widget_pointer</code></em>);</pre>
<p>This function sets *<em class="parameter"><code>widget_pointer</code></em>
 to <code class="literal">NULL</code> if <em class="parameter"><code>widget_pointer</code></em>
 !=
<code class="literal">NULL</code>.  It’s intended to be used as a callback connected to the
“destroy” signal of a widget. You connect <a class="link" href="GtkWidget.html#gtk-widget-destroyed" title="gtk_widget_destroyed ()"><code class="function">gtk_widget_destroyed()</code></a>
as a signal handler, and pass the address of your widget variable
as user data. Then when the widget is destroyed, the variable will
be set to <code class="literal">NULL</code>. Useful for example to avoid multiple copies
of the same dialog.</p>
<div class="refsect3">
<a name="gtk-widget-destroyed.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>widget_pointer</p></td>
<td class="parameter_description"><p>address of a variable that contains <em class="parameter"><code>widget</code></em>
. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for input and for returning results. Default is transfer full."><span class="acronym">inout</span></acronym>][<acronym title="The data is owned by the callee, which is responsible of freeing it."><span class="acronym">transfer none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-unparent"></a><h3>gtk_widget_unparent ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_unparent (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>This function is only for use in widget implementations.
Should be called by implementations of the remove method
on <a class="link" href="GtkContainer.html" title="GtkContainer"><span class="type">GtkContainer</span></a>, to dissociate a child from the container.</p>
<div class="refsect3">
<a name="gtk-widget-unparent.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-show"></a><h3>gtk_widget_show ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_show (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Flags a widget to be displayed. Any widget that isn’t shown will
not appear on the screen. If you want to show all the widgets in a
container, it’s easier to call <a class="link" href="GtkWidget.html#gtk-widget-show-all" title="gtk_widget_show_all ()"><code class="function">gtk_widget_show_all()</code></a> on the
container, instead of individually showing the widgets.</p>
<p>Remember that you have to show the containers containing a widget,
in addition to the widget itself, before it will appear onscreen.</p>
<p>When a toplevel container is shown, it is immediately realized and
mapped; other shown widgets are realized and mapped when their
toplevel container is realized and mapped.</p>
<div class="refsect3">
<a name="gtk-widget-show.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-show-now"></a><h3>gtk_widget_show_now ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_show_now (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Shows a widget. If the widget is an unmapped toplevel widget
(i.e. a <a class="link" href="GtkWindow.html" title="GtkWindow"><span class="type">GtkWindow</span></a> that has not yet been shown), enter the main
loop and wait for the window to actually be mapped. Be careful;
because the main loop is running, anything can happen during
this function.</p>
<div class="refsect3">
<a name="gtk-widget-show-now.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-hide"></a><h3>gtk_widget_hide ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_hide (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Reverses the effects of <a class="link" href="GtkWidget.html#gtk-widget-show" title="gtk_widget_show ()"><code class="function">gtk_widget_show()</code></a>, causing the widget to be
hidden (invisible to the user).</p>
<div class="refsect3">
<a name="gtk-widget-hide.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-show-all"></a><h3>gtk_widget_show_all ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_show_all (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Recursively shows a widget, and any child widgets (if the widget is
a container).</p>
<div class="refsect3">
<a name="gtk-widget-show-all.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-map"></a><h3>gtk_widget_map ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_map (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>This function is only for use in widget implementations. Causes
a widget to be mapped if it isn’t already.</p>
<div class="refsect3">
<a name="gtk-widget-map.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-unmap"></a><h3>gtk_widget_unmap ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_unmap (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>This function is only for use in widget implementations. Causes
a widget to be unmapped if it’s currently mapped.</p>
<div class="refsect3">
<a name="gtk-widget-unmap.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-realize"></a><h3>gtk_widget_realize ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_realize (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Creates the GDK (windowing system) resources associated with a
widget.  For example, <em class="parameter"><code>widget-&gt;window</code></em>
 will be created when a widget
is realized.  Normally realization happens implicitly; if you show
a widget and all its parent containers, then the widget will be
realized and mapped automatically.</p>
<p>Realizing a widget requires all
the widget’s parent widgets to be realized; calling
<a class="link" href="GtkWidget.html#gtk-widget-realize" title="gtk_widget_realize ()"><code class="function">gtk_widget_realize()</code></a> realizes the widget’s parents in addition to
<em class="parameter"><code>widget</code></em>
 itself. If a widget is not yet inside a toplevel window
when you realize it, bad things will happen.</p>
<p>This function is primarily used in widget implementations, and
isn’t very useful otherwise. Many times when you think you might
need it, a better approach is to connect to a signal that will be
called after the widget is realized automatically, such as
<a class="link" href="GtkWidget.html#GtkWidget-draw" title="The “draw” signal"><span class="type">“draw”</span></a>. Or simply <code class="function">g_signal_connect()</code> to the
<a class="link" href="GtkWidget.html#GtkWidget-realize" title="The “realize” signal"><span class="type">“realize”</span></a> signal.</p>
<div class="refsect3">
<a name="gtk-widget-realize.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-unrealize"></a><h3>gtk_widget_unrealize ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_unrealize (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>This function is only useful in widget implementations.
Causes a widget to be unrealized (frees all GDK resources
associated with the widget, such as <em class="parameter"><code>widget-&gt;window</code></em>
).</p>
<div class="refsect3">
<a name="gtk-widget-unrealize.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-draw"></a><h3>gtk_widget_draw ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_draw (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/cairo/cairo-cairo-t.html#cairo-t"><span class="type">cairo_t</span></a> *cr</code></em>);</pre>
<p>Draws <em class="parameter"><code>widget</code></em>
 to <em class="parameter"><code>cr</code></em>
. The top left corner of the widget will be
drawn to the currently set origin point of <em class="parameter"><code>cr</code></em>
.</p>
<p>You should pass a cairo context as <em class="parameter"><code>cr</code></em>
 argument that is in an
original state. Otherwise the resulting drawing is undefined. For
example changing the operator using <a href="/usr/share/gtk-doc/html/cairo/cairo-cairo-t.html#cairo-set-operator"><code class="function">cairo_set_operator()</code></a> or the
line width using <a href="/usr/share/gtk-doc/html/cairo/cairo-cairo-t.html#cairo-set-line-width"><code class="function">cairo_set_line_width()</code></a> might have unwanted side
effects.
You may however change the context’s transform matrix - like with
<a href="/usr/share/gtk-doc/html/cairo/cairo-Transformations.html#cairo-scale"><code class="function">cairo_scale()</code></a>, <a href="/usr/share/gtk-doc/html/cairo/cairo-Transformations.html#cairo-translate"><code class="function">cairo_translate()</code></a> or <a href="/usr/share/gtk-doc/html/cairo/cairo-Transformations.html#cairo-set-matrix"><code class="function">cairo_set_matrix()</code></a> and clip
region with <a href="/usr/share/gtk-doc/html/cairo/cairo-cairo-t.html#cairo-clip"><code class="function">cairo_clip()</code></a> prior to calling this function. Also, it
is fine to modify the context with <a href="/usr/share/gtk-doc/html/cairo/cairo-cairo-t.html#cairo-save"><code class="function">cairo_save()</code></a> and
<a href="/usr/share/gtk-doc/html/cairo/cairo-cairo-t.html#cairo-push-group"><code class="function">cairo_push_group()</code></a> prior to calling this function.</p>
<p>Note that special-purpose widgets may contain special code for
rendering to the screen and might appear differently on screen
and when rendered using <a class="link" href="GtkWidget.html#gtk-widget-draw" title="gtk_widget_draw ()"><code class="function">gtk_widget_draw()</code></a>.</p>
<div class="refsect3">
<a name="gtk-widget-draw.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the widget to draw. It must be drawable (see
<a class="link" href="GtkWidget.html#gtk-widget-is-drawable" title="gtk_widget_is_drawable ()"><code class="function">gtk_widget_is_drawable()</code></a>) and a size must have been allocated.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>cr</p></td>
<td class="parameter_description"><p>a cairo context to draw to</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-queue-draw"></a><h3>gtk_widget_queue_draw ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_queue_draw (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Equivalent to calling <a class="link" href="GtkWidget.html#gtk-widget-queue-draw-area" title="gtk_widget_queue_draw_area ()"><code class="function">gtk_widget_queue_draw_area()</code></a> for the
entire area of a widget.</p>
<div class="refsect3">
<a name="gtk-widget-queue-draw.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-queue-resize"></a><h3>gtk_widget_queue_resize ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_queue_resize (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>This function is only for use in widget implementations.
Flags a widget to have its size renegotiated; should
be called when a widget for some reason has a new size request.
For example, when you change the text in a <a class="link" href="GtkLabel.html" title="GtkLabel"><span class="type">GtkLabel</span></a>, <a class="link" href="GtkLabel.html" title="GtkLabel"><span class="type">GtkLabel</span></a>
queues a resize to ensure there’s enough space for the new text.</p>
<p>Note that you cannot call <a class="link" href="GtkWidget.html#gtk-widget-queue-resize" title="gtk_widget_queue_resize ()"><code class="function">gtk_widget_queue_resize()</code></a> on a widget
from inside its implementation of the GtkWidgetClass::size_allocate 
virtual method. Calls to <a class="link" href="GtkWidget.html#gtk-widget-queue-resize" title="gtk_widget_queue_resize ()"><code class="function">gtk_widget_queue_resize()</code></a> from inside
GtkWidgetClass::size_allocate will be silently ignored.</p>
<div class="refsect3">
<a name="gtk-widget-queue-resize.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-queue-resize-no-redraw"></a><h3>gtk_widget_queue_resize_no_redraw ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_queue_resize_no_redraw (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>This function works like <a class="link" href="GtkWidget.html#gtk-widget-queue-resize" title="gtk_widget_queue_resize ()"><code class="function">gtk_widget_queue_resize()</code></a>,
except that the widget is not invalidated.</p>
<div class="refsect3">
<a name="gtk-widget-queue-resize-no-redraw.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<p class="since">Since: 2.4</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-queue-allocate"></a><h3>gtk_widget_queue_allocate ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_queue_allocate (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>This function is only for use in widget implementations.</p>
<p>Flags the widget for a rerun of the GtkWidgetClass::size_allocate
function. Use this function instead of <a class="link" href="GtkWidget.html#gtk-widget-queue-resize" title="gtk_widget_queue_resize ()"><code class="function">gtk_widget_queue_resize()</code></a>
when the <em class="parameter"><code>widget</code></em>
's size request didn't change but it wants to
reposition its contents.</p>
<p>An example user of this function is <a class="link" href="GtkWidget.html#gtk-widget-set-halign" title="gtk_widget_set_halign ()"><code class="function">gtk_widget_set_halign()</code></a>.</p>
<div class="refsect3">
<a name="gtk-widget-queue-allocate.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-20.html#api-index-3.20">3.20</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-frame-clock"></a><h3>gtk_widget_get_frame_clock ()</h3>
<pre class="programlisting"><span class="returnvalue">GdkFrameClock</span> *
gtk_widget_get_frame_clock (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Obtains the frame clock for a widget. The frame clock is a global
“ticker” that can be used to drive animations and repaints.  The
most common reason to get the frame clock is to call
<code class="function">gdk_frame_clock_get_frame_time()</code>, in order to get a time to use for
animating. For example you might record the start of the animation
with an initial value from <code class="function">gdk_frame_clock_get_frame_time()</code>, and
then update the animation by calling
<code class="function">gdk_frame_clock_get_frame_time()</code> again during each repaint.</p>
<p>gdk_frame_clock_request_phase() will result in a new frame on the
clock, but won’t necessarily repaint any widgets. To repaint a
widget, you have to use <a class="link" href="GtkWidget.html#gtk-widget-queue-draw" title="gtk_widget_queue_draw ()"><code class="function">gtk_widget_queue_draw()</code></a> which invalidates
the widget (thus scheduling it to receive a draw on the next
frame). <a class="link" href="GtkWidget.html#gtk-widget-queue-draw" title="gtk_widget_queue_draw ()"><code class="function">gtk_widget_queue_draw()</code></a> will also end up requesting a frame
on the appropriate frame clock.</p>
<p>A widget’s frame clock will not change while the widget is
mapped. Reparenting a widget (which implies a temporary unmap) can
change the widget’s frame clock.</p>
<p>Unrealized widgets do not have a frame clock.</p>
<div class="refsect3">
<a name="gtk-widget-get-frame-clock.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-frame-clock.returns"></a><h4>Returns</h4>
<p>a <span class="type">GdkFrameClock</span>,
or <code class="literal">NULL</code> if widget is unrealized. </p>
<p><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>][<acronym title="The data is owned by the callee, which is responsible of freeing it."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-8.html#api-index-3.8">3.8</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-scale-factor"></a><h3>gtk_widget_get_scale_factor ()</h3>
<pre class="programlisting"><span class="returnvalue">gint</span>
gtk_widget_get_scale_factor (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Retrieves the internal scale factor that maps from window coordinates
to the actual device pixels. On traditional systems this is 1, on
high density outputs, it can be a higher value (typically 2).</p>
<p>See <code class="function">gdk_window_get_scale_factor()</code>.</p>
<div class="refsect3">
<a name="gtk-widget-get-scale-factor.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-scale-factor.returns"></a><h4>Returns</h4>
<p> the scale factor for <em class="parameter"><code>widget</code></em>
</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-10.html#api-index-3.10">3.10</a></p>
</div>
<hr>
<div class="refsect2">
<a name="GtkTickCallback"></a><h3>GtkTickCallback ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
<span class="c_punctuation">(</span>*GtkTickCallback<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                    <em class="parameter"><code><span class="type">GdkFrameClock</span> *frame_clock</code></em>,
                    <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>);</pre>
<p>Callback type for adding a function to update animations. See <a class="link" href="GtkWidget.html#gtk-widget-add-tick-callback" title="gtk_widget_add_tick_callback ()"><code class="function">gtk_widget_add_tick_callback()</code></a>.</p>
<div class="refsect3">
<a name="GtkTickCallback.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the widget</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>frame_clock</p></td>
<td class="parameter_description"><p>the frame clock for the widget (same as calling <a class="link" href="GtkWidget.html#gtk-widget-get-frame-clock" title="gtk_widget_get_frame_clock ()"><code class="function">gtk_widget_get_frame_clock()</code></a>)</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data passed to <a class="link" href="GtkWidget.html#gtk-widget-add-tick-callback" title="gtk_widget_add_tick_callback ()"><code class="function">gtk_widget_add_tick_callback()</code></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="GtkTickCallback.returns"></a><h4>Returns</h4>
<p> <code class="literal">G_SOURCE_CONTINUE</code> if the tick callback should continue to be called,
<code class="literal">G_SOURCE_REMOVE</code> if the tick callback should be removed.</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-8.html#api-index-3.8">3.8</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-add-tick-callback"></a><h3>gtk_widget_add_tick_callback ()</h3>
<pre class="programlisting"><span class="returnvalue">guint</span>
gtk_widget_add_tick_callback (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                              <em class="parameter"><code><a class="link" href="GtkWidget.html#GtkTickCallback" title="GtkTickCallback ()"><span class="type">GtkTickCallback</span></a> callback</code></em>,
                              <em class="parameter"><code><span class="type">gpointer</span> user_data</code></em>,
                              <em class="parameter"><code><span class="type">GDestroyNotify</span> notify</code></em>);</pre>
<p>Queues an animation frame update and adds a callback to be called
before each frame. Until the tick callback is removed, it will be
called frequently (usually at the frame rate of the output device
or as quickly as the application can be repainted, whichever is
slower). For this reason, is most suitable for handling graphics
that change every frame or every few frames. The tick callback does
not automatically imply a relayout or repaint. If you want a
repaint or relayout, and aren’t changing widget properties that
would trigger that (for example, changing the text of a <a class="link" href="GtkLabel.html" title="GtkLabel"><span class="type">GtkLabel</span></a>),
then you will have to call <a class="link" href="GtkWidget.html#gtk-widget-queue-resize" title="gtk_widget_queue_resize ()"><code class="function">gtk_widget_queue_resize()</code></a> or
<a class="link" href="GtkWidget.html#gtk-widget-queue-draw-area" title="gtk_widget_queue_draw_area ()"><code class="function">gtk_widget_queue_draw_area()</code></a> yourself.</p>
<p>gdk_frame_clock_get_frame_time() should generally be used for timing
continuous animations and
<code class="function">gdk_frame_timings_get_predicted_presentation_time()</code> if you are
trying to display isolated frames at particular times.</p>
<p>This is a more convenient alternative to connecting directly to the
<span class="type">“update”</span> signal of <span class="type">GdkFrameClock</span>, since you don't
have to worry about when a <span class="type">GdkFrameClock</span> is assigned to a widget.</p>
<div class="refsect3">
<a name="gtk-widget-add-tick-callback.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>callback</p></td>
<td class="parameter_description"><p>function to call for updating animations</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>data to pass to <em class="parameter"><code>callback</code></em>
</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>notify</p></td>
<td class="parameter_description"><p>function to call to free <em class="parameter"><code>user_data</code></em>
when the callback is removed.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-add-tick-callback.returns"></a><h4>Returns</h4>
<p> an id for the connection of this callback. Remove the callback
by passing it to <a class="link" href="GtkWidget.html#gtk-widget-remove-tick-callback" title="gtk_widget_remove_tick_callback ()"><code class="function">gtk_widget_remove_tick_callback()</code></a></p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-8.html#api-index-3.8">3.8</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-remove-tick-callback"></a><h3>gtk_widget_remove_tick_callback ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_remove_tick_callback (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                 <em class="parameter"><code><span class="type">guint</span> id</code></em>);</pre>
<p>Removes a tick callback previously registered with
<a class="link" href="GtkWidget.html#gtk-widget-add-tick-callback" title="gtk_widget_add_tick_callback ()"><code class="function">gtk_widget_add_tick_callback()</code></a>.</p>
<div class="refsect3">
<a name="gtk-widget-remove-tick-callback.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>id</p></td>
<td class="parameter_description"><p>an id returned by <a class="link" href="GtkWidget.html#gtk-widget-add-tick-callback" title="gtk_widget_add_tick_callback ()"><code class="function">gtk_widget_add_tick_callback()</code></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-8.html#api-index-3.8">3.8</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-size-request"></a><h3>gtk_widget_size_request ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_size_request (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                         <em class="parameter"><code><a class="link" href="GtkWidget.html#GtkRequisition"><span class="type">GtkRequisition</span></a> *requisition</code></em>);</pre>
<div class="warning">
<p><code class="literal">gtk_widget_size_request</code> has been deprecated since version 3.0 and should not be used in newly-written code.</p>
<p>Use <a class="link" href="GtkWidget.html#gtk-widget-get-preferred-size" title="gtk_widget_get_preferred_size ()"><code class="function">gtk_widget_get_preferred_size()</code></a> instead.</p>
</div>
<p>This function is typically used when implementing a <a class="link" href="GtkContainer.html" title="GtkContainer"><span class="type">GtkContainer</span></a>
subclass.  Obtains the preferred size of a widget. The container
uses this information to arrange its child widgets and decide what
size allocations to give them with <a class="link" href="GtkWidget.html#gtk-widget-size-allocate" title="gtk_widget_size_allocate ()"><code class="function">gtk_widget_size_allocate()</code></a>.</p>
<p>You can also call this function from an application, with some
caveats. Most notably, getting a size request requires the widget
to be associated with a screen, because font information may be
needed. Multihead-aware applications should keep this in mind.</p>
<p>Also remember that the size request is not necessarily the size
a widget will actually be allocated.</p>
<div class="refsect3">
<a name="gtk-widget-size-request.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>requisition</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html#GtkRequisition"><span class="type">GtkRequisition</span></a> to be filled in. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-child-requisition"></a><h3>gtk_widget_get_child_requisition ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_get_child_requisition (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                  <em class="parameter"><code><a class="link" href="GtkWidget.html#GtkRequisition"><span class="type">GtkRequisition</span></a> *requisition</code></em>);</pre>
<div class="warning">
<p><code class="literal">gtk_widget_get_child_requisition</code> has been deprecated since version 3.0 and should not be used in newly-written code.</p>
<p>Use <a class="link" href="GtkWidget.html#gtk-widget-get-preferred-size" title="gtk_widget_get_preferred_size ()"><code class="function">gtk_widget_get_preferred_size()</code></a> instead.</p>
</div>
<p>This function is only for use in widget implementations. Obtains
<em class="parameter"><code>widget-&gt;requisition</code></em>
, unless someone has forced a particular
geometry on the widget (e.g. with <a class="link" href="GtkWidget.html#gtk-widget-set-size-request" title="gtk_widget_set_size_request ()"><code class="function">gtk_widget_set_size_request()</code></a>),
in which case it returns that geometry instead of the widget's
requisition.</p>
<p>This function differs from <a class="link" href="GtkWidget.html#gtk-widget-size-request" title="gtk_widget_size_request ()"><code class="function">gtk_widget_size_request()</code></a> in that
it retrieves the last size request value from <em class="parameter"><code>widget-&gt;requisition</code></em>
,
while <a class="link" href="GtkWidget.html#gtk-widget-size-request" title="gtk_widget_size_request ()"><code class="function">gtk_widget_size_request()</code></a> actually calls the "size_request" method
on <em class="parameter"><code>widget</code></em>
 to compute the size request and fill in <em class="parameter"><code>widget-&gt;requisition</code></em>
,
and only then returns <em class="parameter"><code>widget-&gt;requisition</code></em>
.</p>
<p>Because this function does not call the “size_request” method, it
can only be used when you know that <em class="parameter"><code>widget-&gt;requisition</code></em>
 is
up-to-date, that is, <a class="link" href="GtkWidget.html#gtk-widget-size-request" title="gtk_widget_size_request ()"><code class="function">gtk_widget_size_request()</code></a> has been called
since the last time a resize was queued. In general, only container
implementations have this information; applications should use
<a class="link" href="GtkWidget.html#gtk-widget-size-request" title="gtk_widget_size_request ()"><code class="function">gtk_widget_size_request()</code></a>.</p>
<div class="refsect3">
<a name="gtk-widget-get-child-requisition.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>requisition</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html#GtkRequisition"><span class="type">GtkRequisition</span></a> to be filled in. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-size-allocate"></a><h3>gtk_widget_size_allocate ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_size_allocate (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                          <em class="parameter"><code><a class="link" href="GtkWidget.html#GtkAllocation" title="GtkAllocation"><span class="type">GtkAllocation</span></a> *allocation</code></em>);</pre>
<p>This function is only used by <a class="link" href="GtkContainer.html" title="GtkContainer"><span class="type">GtkContainer</span></a> subclasses, to assign a size
and position to their child widgets.</p>
<p>In this function, the allocation may be adjusted. It will be forced
to a 1x1 minimum size, and the adjust_size_allocation virtual
method on the child will be used to adjust the allocation. Standard
adjustments include removing the widget’s margins, and applying the
widget’s <a class="link" href="GtkWidget.html#GtkWidget--halign" title="The “halign” property"><span class="type">“halign”</span></a> and <a class="link" href="GtkWidget.html#GtkWidget--valign" title="The “valign” property"><span class="type">“valign”</span></a> properties.</p>
<p>For baseline support in containers you need to use <a class="link" href="GtkWidget.html#gtk-widget-size-allocate-with-baseline" title="gtk_widget_size_allocate_with_baseline ()"><code class="function">gtk_widget_size_allocate_with_baseline()</code></a>
instead.</p>
<div class="refsect3">
<a name="gtk-widget-size-allocate.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>allocation</p></td>
<td class="parameter_description"><p>position and size to be allocated to <em class="parameter"><code>widget</code></em>
</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-size-allocate-with-baseline"></a><h3>gtk_widget_size_allocate_with_baseline ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_size_allocate_with_baseline
                               (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                <em class="parameter"><code><a class="link" href="GtkWidget.html#GtkAllocation" title="GtkAllocation"><span class="type">GtkAllocation</span></a> *allocation</code></em>,
                                <em class="parameter"><code><span class="type">gint</span> baseline</code></em>);</pre>
<p>This function is only used by <a class="link" href="GtkContainer.html" title="GtkContainer"><span class="type">GtkContainer</span></a> subclasses, to assign a size,
position and (optionally) baseline to their child widgets.</p>
<p>In this function, the allocation and baseline may be adjusted. It
will be forced to a 1x1 minimum size, and the
adjust_size_allocation virtual and adjust_baseline_allocation
methods on the child will be used to adjust the allocation and
baseline. Standard adjustments include removing the widget's
margins, and applying the widget’s <a class="link" href="GtkWidget.html#GtkWidget--halign" title="The “halign” property"><span class="type">“halign”</span></a> and
<a class="link" href="GtkWidget.html#GtkWidget--valign" title="The “valign” property"><span class="type">“valign”</span></a> properties.</p>
<p>If the child widget does not have a valign of <a class="link" href="GtkWidget.html#GTK-ALIGN-BASELINE:CAPS"><code class="literal">GTK_ALIGN_BASELINE</code></a> the
baseline argument is ignored and -1 is used instead.</p>
<div class="refsect3">
<a name="gtk-widget-size-allocate-with-baseline.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>allocation</p></td>
<td class="parameter_description"><p>position and size to be allocated to <em class="parameter"><code>widget</code></em>
</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>baseline</p></td>
<td class="parameter_description"><p>The baseline of the child, or -1</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-10.html#api-index-3.10">3.10</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-add-accelerator"></a><h3>gtk_widget_add_accelerator ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_add_accelerator (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                            <em class="parameter"><code>const <span class="type">gchar</span> *accel_signal</code></em>,
                            <em class="parameter"><code><a class="link" href="gtk3-Keyboard-Accelerators.html#GtkAccelGroup"><span class="type">GtkAccelGroup</span></a> *accel_group</code></em>,
                            <em class="parameter"><code><span class="type">guint</span> accel_key</code></em>,
                            <em class="parameter"><code><span class="type">GdkModifierType</span> accel_mods</code></em>,
                            <em class="parameter"><code><a class="link" href="gtk3-Keyboard-Accelerators.html#GtkAccelFlags" title="enum GtkAccelFlags"><span class="type">GtkAccelFlags</span></a> accel_flags</code></em>);</pre>
<p>Installs an accelerator for this <em class="parameter"><code>widget</code></em>
 in <em class="parameter"><code>accel_group</code></em>
 that causes
<em class="parameter"><code>accel_signal</code></em>
 to be emitted if the accelerator is activated.
The <em class="parameter"><code>accel_group</code></em>
 needs to be added to the widget’s toplevel via
<a class="link" href="GtkWindow.html#gtk-window-add-accel-group" title="gtk_window_add_accel_group ()"><code class="function">gtk_window_add_accel_group()</code></a>, and the signal must be of type <code class="literal">G_SIGNAL_ACTION</code>.
Accelerators added through this function are not user changeable during
runtime. If you want to support accelerators that can be changed by the
user, use <a class="link" href="gtk3-Accelerator-Maps.html#gtk-accel-map-add-entry" title="gtk_accel_map_add_entry ()"><code class="function">gtk_accel_map_add_entry()</code></a> and <a class="link" href="GtkWidget.html#gtk-widget-set-accel-path" title="gtk_widget_set_accel_path ()"><code class="function">gtk_widget_set_accel_path()</code></a> or
<a class="link" href="GtkMenuItem.html#gtk-menu-item-set-accel-path" title="gtk_menu_item_set_accel_path ()"><code class="function">gtk_menu_item_set_accel_path()</code></a> instead.</p>
<div class="refsect3">
<a name="gtk-widget-add-accelerator.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>widget to install an accelerator on</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>accel_signal</p></td>
<td class="parameter_description"><p>widget signal to emit on accelerator activation</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>accel_group</p></td>
<td class="parameter_description"><p>accel group for this widget, added to its toplevel</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>accel_key</p></td>
<td class="parameter_description"><p>GDK keyval of the accelerator</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>accel_mods</p></td>
<td class="parameter_description"><p>modifier key combination of the accelerator</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>accel_flags</p></td>
<td class="parameter_description"><p>flag accelerators, e.g. <a class="link" href="gtk3-Keyboard-Accelerators.html#GTK-ACCEL-VISIBLE:CAPS"><code class="literal">GTK_ACCEL_VISIBLE</code></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-remove-accelerator"></a><h3>gtk_widget_remove_accelerator ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_widget_remove_accelerator (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                               <em class="parameter"><code><a class="link" href="gtk3-Keyboard-Accelerators.html#GtkAccelGroup"><span class="type">GtkAccelGroup</span></a> *accel_group</code></em>,
                               <em class="parameter"><code><span class="type">guint</span> accel_key</code></em>,
                               <em class="parameter"><code><span class="type">GdkModifierType</span> accel_mods</code></em>);</pre>
<p>Removes an accelerator from <em class="parameter"><code>widget</code></em>
, previously installed with
<a class="link" href="GtkWidget.html#gtk-widget-add-accelerator" title="gtk_widget_add_accelerator ()"><code class="function">gtk_widget_add_accelerator()</code></a>.</p>
<div class="refsect3">
<a name="gtk-widget-remove-accelerator.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>widget to install an accelerator on</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>accel_group</p></td>
<td class="parameter_description"><p>accel group for this widget</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>accel_key</p></td>
<td class="parameter_description"><p>GDK keyval of the accelerator</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>accel_mods</p></td>
<td class="parameter_description"><p>modifier key combination of the accelerator</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-remove-accelerator.returns"></a><h4>Returns</h4>
<p> whether an accelerator was installed and could be removed</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-accel-path"></a><h3>gtk_widget_set_accel_path ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_set_accel_path (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                           <em class="parameter"><code>const <span class="type">gchar</span> *accel_path</code></em>,
                           <em class="parameter"><code><a class="link" href="gtk3-Keyboard-Accelerators.html#GtkAccelGroup"><span class="type">GtkAccelGroup</span></a> *accel_group</code></em>);</pre>
<p>Given an accelerator group, <em class="parameter"><code>accel_group</code></em>
, and an accelerator path,
<em class="parameter"><code>accel_path</code></em>
, sets up an accelerator in <em class="parameter"><code>accel_group</code></em>
 so whenever the
key binding that is defined for <em class="parameter"><code>accel_path</code></em>
 is pressed, <em class="parameter"><code>widget</code></em>

will be activated.  This removes any accelerators (for any
accelerator group) installed by previous calls to
<a class="link" href="GtkWidget.html#gtk-widget-set-accel-path" title="gtk_widget_set_accel_path ()"><code class="function">gtk_widget_set_accel_path()</code></a>. Associating accelerators with
paths allows them to be modified by the user and the modifications
to be saved for future use. (See <a class="link" href="gtk3-Accelerator-Maps.html#gtk-accel-map-save" title="gtk_accel_map_save ()"><code class="function">gtk_accel_map_save()</code></a>.)</p>
<p>This function is a low level function that would most likely
be used by a menu creation system like <a class="link" href="GtkUIManager.html" title="GtkUIManager"><span class="type">GtkUIManager</span></a>. If you
use <a class="link" href="GtkUIManager.html" title="GtkUIManager"><span class="type">GtkUIManager</span></a>, setting up accelerator paths will be done
automatically.</p>
<p>Even when you you aren’t using <a class="link" href="GtkUIManager.html" title="GtkUIManager"><span class="type">GtkUIManager</span></a>, if you only want to
set up accelerators on menu items <a class="link" href="GtkMenuItem.html#gtk-menu-item-set-accel-path" title="gtk_menu_item_set_accel_path ()"><code class="function">gtk_menu_item_set_accel_path()</code></a>
provides a somewhat more convenient interface.</p>
<p>Note that <em class="parameter"><code>accel_path</code></em>
 string will be stored in a <span class="type">GQuark</span>. Therefore, if you
pass a static string, you can save some memory by interning it first with
<code class="function">g_intern_static_string()</code>.</p>
<div class="refsect3">
<a name="gtk-widget-set-accel-path.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>accel_path</p></td>
<td class="parameter_description"><p>path used to look up the accelerator. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>accel_group</p></td>
<td class="parameter_description"><p>a <a class="link" href="gtk3-Keyboard-Accelerators.html#GtkAccelGroup"><span class="type">GtkAccelGroup</span></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-list-accel-closures"></a><h3>gtk_widget_list_accel_closures ()</h3>
<pre class="programlisting"><span class="returnvalue">GList</span> *
gtk_widget_list_accel_closures (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Lists the closures used by <em class="parameter"><code>widget</code></em>
 for accelerator group connections
with <a class="link" href="gtk3-Keyboard-Accelerators.html#gtk-accel-group-connect-by-path" title="gtk_accel_group_connect_by_path ()"><code class="function">gtk_accel_group_connect_by_path()</code></a> or <a class="link" href="gtk3-Keyboard-Accelerators.html#gtk-accel-group-connect" title="gtk_accel_group_connect ()"><code class="function">gtk_accel_group_connect()</code></a>.
The closures can be used to monitor accelerator changes on <em class="parameter"><code>widget</code></em>
,
by connecting to the <em class="parameter"><code>GtkAccelGroup</code></em>
::accel-changed signal of the
<a class="link" href="gtk3-Keyboard-Accelerators.html#GtkAccelGroup"><span class="type">GtkAccelGroup</span></a> of a closure which can be found out with
<a class="link" href="gtk3-Keyboard-Accelerators.html#gtk-accel-group-from-accel-closure" title="gtk_accel_group_from_accel_closure ()"><code class="function">gtk_accel_group_from_accel_closure()</code></a>.</p>
<div class="refsect3">
<a name="gtk-widget-list-accel-closures.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>widget to list accelerator closures for</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-list-accel-closures.returns"></a><h4>Returns</h4>
<p>a newly allocated <span class="type">GList</span> of closures. </p>
<p><span class="annotation">[<acronym title="The caller owns the data container, but not the data inside it."><span class="acronym">transfer container</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GClosure]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-can-activate-accel"></a><h3>gtk_widget_can_activate_accel ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_widget_can_activate_accel (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                               <em class="parameter"><code><span class="type">guint</span> signal_id</code></em>);</pre>
<p>Determines whether an accelerator that activates the signal
identified by <em class="parameter"><code>signal_id</code></em>
 can currently be activated.
This is done by emitting the <a class="link" href="GtkWidget.html#GtkWidget-can-activate-accel" title="The “can-activate-accel” signal"><span class="type">“can-activate-accel”</span></a>
signal on <em class="parameter"><code>widget</code></em>
; if the signal isn’t overridden by a
handler or in a derived widget, then the default check is
that the widget must be sensitive, and the widget and all
its ancestors mapped.</p>
<div class="refsect3">
<a name="gtk-widget-can-activate-accel.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>signal_id</p></td>
<td class="parameter_description"><p>the ID of a signal installed on <em class="parameter"><code>widget</code></em>
</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-can-activate-accel.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if the accelerator can be activated.</p>
</div>
<p class="since">Since: 2.4</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-event"></a><h3>gtk_widget_event ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_widget_event (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                  <em class="parameter"><code><span class="type">GdkEvent</span> *event</code></em>);</pre>
<p>Rarely-used function. This function is used to emit
the event signals on a widget (those signals should never
be emitted without using this function to do so).
If you want to synthesize an event though, don’t use this function;
instead, use <a class="link" href="gtk3-General.html#gtk-main-do-event" title="gtk_main_do_event ()"><code class="function">gtk_main_do_event()</code></a> so the event will behave as if
it were in the event queue. Don’t synthesize expose events; instead,
use <code class="function">gdk_window_invalidate_rect()</code> to invalidate a region of the
window.</p>
<div class="refsect3">
<a name="gtk-widget-event.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>a <span class="type">GdkEvent</span></p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-event.returns"></a><h4>Returns</h4>
<p> return from the event signal emission (<code class="literal">TRUE</code> if
the event was handled)</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-activate"></a><h3>gtk_widget_activate ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_widget_activate (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>For widgets that can be “activated” (buttons, menu items, etc.)
this function activates them. Activation is what happens when you
press Enter on a widget during key navigation. If <em class="parameter"><code>widget</code></em>
 isn't
activatable, the function returns <code class="literal">FALSE</code>.</p>
<div class="refsect3">
<a name="gtk-widget-activate.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> that’s activatable</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-activate.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if the widget was activatable</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-reparent"></a><h3>gtk_widget_reparent ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_reparent (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                     <em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *new_parent</code></em>);</pre>
<div class="warning">
<p><code class="literal">gtk_widget_reparent</code> has been deprecated since version 3.14 and should not be used in newly-written code.</p>
<p>Use <a class="link" href="GtkContainer.html#gtk-container-remove" title="gtk_container_remove ()"><code class="function">gtk_container_remove()</code></a> and <a class="link" href="GtkContainer.html#gtk-container-add" title="gtk_container_add ()"><code class="function">gtk_container_add()</code></a>.</p>
</div>
<p>Moves a widget from one <a class="link" href="GtkContainer.html" title="GtkContainer"><span class="type">GtkContainer</span></a> to another, handling reference
count issues to avoid destroying the widget.</p>
<div class="refsect3">
<a name="gtk-widget-reparent.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>new_parent</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkContainer.html" title="GtkContainer"><span class="type">GtkContainer</span></a> to move the widget into</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-intersect"></a><h3>gtk_widget_intersect ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_widget_intersect (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                      <em class="parameter"><code>const <span class="type">GdkRectangle</span> *area</code></em>,
                      <em class="parameter"><code><span class="type">GdkRectangle</span> *intersection</code></em>);</pre>
<p>Computes the intersection of a <em class="parameter"><code>widget</code></em>
’s area and <em class="parameter"><code>area</code></em>
, storing
the intersection in <em class="parameter"><code>intersection</code></em>
, and returns <code class="literal">TRUE</code> if there was
an intersection.  <em class="parameter"><code>intersection</code></em>
 may be <code class="literal">NULL</code> if you’re only
interested in whether there was an intersection.</p>
<div class="refsect3">
<a name="gtk-widget-intersect.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>area</p></td>
<td class="parameter_description"><p>a rectangle</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>intersection</p></td>
<td class="parameter_description"><p>rectangle to store
intersection of <em class="parameter"><code>widget</code></em>
and <em class="parameter"><code>area</code></em>
. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Out parameter, where caller must allocate storage."><span class="acronym">out caller-allocates</span></acronym>][<acronym title="NULL may be passed instead of a pointer to a location."><span class="acronym">optional</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-intersect.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if there was an intersection</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-is-focus"></a><h3>gtk_widget_is_focus ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_widget_is_focus (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Determines if the widget is the focus widget within its
toplevel. (This does not mean that the <a class="link" href="GtkWidget.html#GtkWidget--has-focus" title="The “has-focus” property"><span class="type">“has-focus”</span></a> property is
necessarily set; <a class="link" href="GtkWidget.html#GtkWidget--has-focus" title="The “has-focus” property"><span class="type">“has-focus”</span></a> will only be set if the
toplevel widget additionally has the global input focus.)</p>
<div class="refsect3">
<a name="gtk-widget-is-focus.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-is-focus.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if the widget is the focus widget.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-grab-focus"></a><h3>gtk_widget_grab_focus ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_grab_focus (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Causes <em class="parameter"><code>widget</code></em>
 to have the keyboard focus for the <a class="link" href="GtkWindow.html" title="GtkWindow"><span class="type">GtkWindow</span></a> it's
inside. <em class="parameter"><code>widget</code></em>
 must be a focusable widget, such as a <a class="link" href="GtkEntry.html" title="GtkEntry"><span class="type">GtkEntry</span></a>;
something like <a class="link" href="GtkFrame.html" title="GtkFrame"><span class="type">GtkFrame</span></a> won’t work.</p>
<p>More precisely, it must have the <code class="literal">GTK_CAN_FOCUS</code> flag set. Use
<a class="link" href="GtkWidget.html#gtk-widget-set-can-focus" title="gtk_widget_set_can_focus ()"><code class="function">gtk_widget_set_can_focus()</code></a> to modify that flag.</p>
<p>The widget also needs to be realized and mapped. This is indicated by the
related signals. Grabbing the focus immediately after creating the widget
will likely fail and cause critical warnings.</p>
<div class="refsect3">
<a name="gtk-widget-grab-focus.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-grab-default"></a><h3>gtk_widget_grab_default ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_grab_default (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Causes <em class="parameter"><code>widget</code></em>
 to become the default widget. <em class="parameter"><code>widget</code></em>
 must be able to be
a default widget; typically you would ensure this yourself
by calling <a class="link" href="GtkWidget.html#gtk-widget-set-can-default" title="gtk_widget_set_can_default ()"><code class="function">gtk_widget_set_can_default()</code></a> with a <code class="literal">TRUE</code> value.
The default widget is activated when
the user presses Enter in a window. Default widgets must be
activatable, that is, <a class="link" href="GtkWidget.html#gtk-widget-activate" title="gtk_widget_activate ()"><code class="function">gtk_widget_activate()</code></a> should affect them. Note
that <a class="link" href="GtkEntry.html" title="GtkEntry"><span class="type">GtkEntry</span></a> widgets require the “activates-default” property
set to <code class="literal">TRUE</code> before they activate the default widget when Enter
is pressed and the <a class="link" href="GtkEntry.html" title="GtkEntry"><span class="type">GtkEntry</span></a> is focused.</p>
<div class="refsect3">
<a name="gtk-widget-grab-default.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-name"></a><h3>gtk_widget_set_name ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_set_name (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                     <em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>);</pre>
<p>Widgets can be named, which allows you to refer to them from a
CSS file. You can apply a style to widgets with a particular name
in the CSS file. See the documentation for the CSS syntax (on the
same page as the docs for <a class="link" href="GtkStyleContext.html" title="GtkStyleContext"><span class="type">GtkStyleContext</span></a>).</p>
<p>Note that the CSS syntax has certain special characters to delimit
and represent elements in a selector (period, #, &gt;, *...), so using
these will make your widget impossible to match by name. Any combination
of alphanumeric symbols, dashes and underscores will suffice.</p>
<div class="refsect3">
<a name="gtk-widget-set-name.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>name</p></td>
<td class="parameter_description"><p>name for the widget</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-name"></a><h3>gtk_widget_get_name ()</h3>
<pre class="programlisting">const <span class="returnvalue">gchar</span> *
gtk_widget_get_name (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Retrieves the name of a widget. See <a class="link" href="GtkWidget.html#gtk-widget-set-name" title="gtk_widget_set_name ()"><code class="function">gtk_widget_set_name()</code></a> for the
significance of widget names.</p>
<div class="refsect3">
<a name="gtk-widget-get-name.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-name.returns"></a><h4>Returns</h4>
<p> name of the widget. This string is owned by GTK+ and
should not be modified or freed</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-state"></a><h3>gtk_widget_set_state ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_set_state (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                      <em class="parameter"><code><a class="link" href="GtkWidget.html#GtkStateType" title="enum GtkStateType"><span class="type">GtkStateType</span></a> state</code></em>);</pre>
<div class="warning">
<p><code class="literal">gtk_widget_set_state</code> has been deprecated since version 3.0 and should not be used in newly-written code.</p>
<p>Use <a class="link" href="GtkWidget.html#gtk-widget-set-state-flags" title="gtk_widget_set_state_flags ()"><code class="function">gtk_widget_set_state_flags()</code></a> instead.</p>
</div>
<p>This function is for use in widget implementations. Sets the state
of a widget (insensitive, prelighted, etc.) Usually you should set
the state using wrapper functions such as <a class="link" href="GtkWidget.html#gtk-widget-set-sensitive" title="gtk_widget_set_sensitive ()"><code class="function">gtk_widget_set_sensitive()</code></a>.</p>
<div class="refsect3">
<a name="gtk-widget-set-state.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>state</p></td>
<td class="parameter_description"><p>new state for <em class="parameter"><code>widget</code></em>
</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-sensitive"></a><h3>gtk_widget_set_sensitive ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_set_sensitive (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                          <em class="parameter"><code><span class="type">gboolean</span> sensitive</code></em>);</pre>
<p>Sets the sensitivity of a widget. A widget is sensitive if the user
can interact with it. Insensitive widgets are “grayed out” and the
user can’t interact with them. Insensitive widgets are known as
“inactive”, “disabled”, or “ghosted” in some other toolkits.</p>
<div class="refsect3">
<a name="gtk-widget-set-sensitive.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>sensitive</p></td>
<td class="parameter_description"><p><code class="literal">TRUE</code> to make the widget sensitive</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-parent"></a><h3>gtk_widget_set_parent ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_set_parent (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                       <em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *parent</code></em>);</pre>
<p>This function is useful only when implementing subclasses of
<a class="link" href="GtkContainer.html" title="GtkContainer"><span class="type">GtkContainer</span></a>.
Sets the container as the parent of <em class="parameter"><code>widget</code></em>
, and takes care of
some details such as updating the state and style of the child
to reflect its new location. The opposite function is
<a class="link" href="GtkWidget.html#gtk-widget-unparent" title="gtk_widget_unparent ()"><code class="function">gtk_widget_unparent()</code></a>.</p>
<div class="refsect3">
<a name="gtk-widget-set-parent.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>parent</p></td>
<td class="parameter_description"><p>parent container</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-parent-window"></a><h3>gtk_widget_set_parent_window ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_set_parent_window (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                              <em class="parameter"><code><span class="type">GdkWindow</span> *parent_window</code></em>);</pre>
<p>Sets a non default parent window for <em class="parameter"><code>widget</code></em>
.</p>
<p>For <a class="link" href="GtkWindow.html" title="GtkWindow"><span class="type">GtkWindow</span></a> classes, setting a <em class="parameter"><code>parent_window</code></em>
 effects whether
the window is a toplevel window or can be embedded into other
widgets.</p>
<p>For <a class="link" href="GtkWindow.html" title="GtkWindow"><span class="type">GtkWindow</span></a> classes, this needs to be called before the
window is realized.</p>
<div class="refsect3">
<a name="gtk-widget-set-parent-window.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>parent_window</p></td>
<td class="parameter_description"><p>the new parent window.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-parent-window"></a><h3>gtk_widget_get_parent_window ()</h3>
<pre class="programlisting"><span class="returnvalue">GdkWindow</span> *
gtk_widget_get_parent_window (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Gets <em class="parameter"><code>widget</code></em>
’s parent window, or <code class="literal">NULL</code> if it does not have one.</p>
<div class="refsect3">
<a name="gtk-widget-get-parent-window.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-parent-window.returns"></a><h4>Returns</h4>
<p>the parent window of <em class="parameter"><code>widget</code></em>
, or <code class="literal">NULL</code>
if it does not have a parent window. </p>
<p><span class="annotation">[<acronym title="The data is owned by the callee, which is responsible of freeing it."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-events"></a><h3>gtk_widget_set_events ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_set_events (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                       <em class="parameter"><code><span class="type">gint</span> events</code></em>);</pre>
<p>Sets the event mask (see <span class="type">GdkEventMask</span>) for a widget. The event
mask determines which events a widget will receive. Keep in mind
that different widgets have different default event masks, and by
changing the event mask you may disrupt a widget’s functionality,
so be careful. This function must be called while a widget is
unrealized. Consider <a class="link" href="GtkWidget.html#gtk-widget-add-events" title="gtk_widget_add_events ()"><code class="function">gtk_widget_add_events()</code></a> for widgets that are
already realized, or if you want to preserve the existing event
mask. This function can’t be used with widgets that have no window.
(See <a class="link" href="GtkWidget.html#gtk-widget-get-has-window" title="gtk_widget_get_has_window ()"><code class="function">gtk_widget_get_has_window()</code></a>).  To get events on those widgets,
place them inside a <a class="link" href="GtkEventBox.html" title="GtkEventBox"><span class="type">GtkEventBox</span></a> and receive events on the event
box.</p>
<div class="refsect3">
<a name="gtk-widget-set-events.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>events</p></td>
<td class="parameter_description"><p>event mask</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-events"></a><h3>gtk_widget_get_events ()</h3>
<pre class="programlisting"><span class="returnvalue">gint</span>
gtk_widget_get_events (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Returns the event mask (see <span class="type">GdkEventMask</span>) for the widget. These are the
events that the widget will receive.</p>
<p>Note: Internally, the widget event mask will be the logical OR of the event
mask set through <a class="link" href="GtkWidget.html#gtk-widget-set-events" title="gtk_widget_set_events ()"><code class="function">gtk_widget_set_events()</code></a> or <a class="link" href="GtkWidget.html#gtk-widget-add-events" title="gtk_widget_add_events ()"><code class="function">gtk_widget_add_events()</code></a>, and the
event mask necessary to cater for every <a class="link" href="GtkEventController.html" title="GtkEventController"><span class="type">GtkEventController</span></a> created for the
widget.</p>
<div class="refsect3">
<a name="gtk-widget-get-events.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-events.returns"></a><h4>Returns</h4>
<p> event mask for <em class="parameter"><code>widget</code></em>
</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-add-events"></a><h3>gtk_widget_add_events ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_add_events (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                       <em class="parameter"><code><span class="type">gint</span> events</code></em>);</pre>
<p>Adds the events in the bitfield <em class="parameter"><code>events</code></em>
 to the event mask for
<em class="parameter"><code>widget</code></em>
. See <a class="link" href="GtkWidget.html#gtk-widget-set-events" title="gtk_widget_set_events ()"><code class="function">gtk_widget_set_events()</code></a> and the
<a class="link" href="chap-input-handling.html#event-masks" title="Event masks">input handling overview</a> for details.</p>
<div class="refsect3">
<a name="gtk-widget-add-events.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>events</p></td>
<td class="parameter_description"><p>an event mask, see <span class="type">GdkEventMask</span></p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-device-events"></a><h3>gtk_widget_set_device_events ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_set_device_events (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                              <em class="parameter"><code><span class="type">GdkDevice</span> *device</code></em>,
                              <em class="parameter"><code><span class="type">GdkEventMask</span> events</code></em>);</pre>
<p>Sets the device event mask (see <span class="type">GdkEventMask</span>) for a widget. The event
mask determines which events a widget will receive from <em class="parameter"><code>device</code></em>
. Keep
in mind that different widgets have different default event masks, and by
changing the event mask you may disrupt a widget’s functionality,
so be careful. This function must be called while a widget is
unrealized. Consider <a class="link" href="GtkWidget.html#gtk-widget-add-device-events" title="gtk_widget_add_device_events ()"><code class="function">gtk_widget_add_device_events()</code></a> for widgets that are
already realized, or if you want to preserve the existing event
mask. This function can’t be used with windowless widgets (which return
<code class="literal">FALSE</code> from <a class="link" href="GtkWidget.html#gtk-widget-get-has-window" title="gtk_widget_get_has_window ()"><code class="function">gtk_widget_get_has_window()</code></a>);
to get events on those widgets, place them inside a <a class="link" href="GtkEventBox.html" title="GtkEventBox"><span class="type">GtkEventBox</span></a>
and receive events on the event box.</p>
<div class="refsect3">
<a name="gtk-widget-set-device-events.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>device</p></td>
<td class="parameter_description"><p>a <span class="type">GdkDevice</span></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>events</p></td>
<td class="parameter_description"><p>event mask</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-device-events"></a><h3>gtk_widget_get_device_events ()</h3>
<pre class="programlisting"><span class="returnvalue">GdkEventMask</span>
gtk_widget_get_device_events (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                              <em class="parameter"><code><span class="type">GdkDevice</span> *device</code></em>);</pre>
<p>Returns the events mask for the widget corresponding to an specific device. These
are the events that the widget will receive when <em class="parameter"><code>device</code></em>
 operates on it.</p>
<div class="refsect3">
<a name="gtk-widget-get-device-events.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>device</p></td>
<td class="parameter_description"><p>a <span class="type">GdkDevice</span></p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-device-events.returns"></a><h4>Returns</h4>
<p> device event mask for <em class="parameter"><code>widget</code></em>
</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-add-device-events"></a><h3>gtk_widget_add_device_events ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_add_device_events (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                              <em class="parameter"><code><span class="type">GdkDevice</span> *device</code></em>,
                              <em class="parameter"><code><span class="type">GdkEventMask</span> events</code></em>);</pre>
<p>Adds the device events in the bitfield <em class="parameter"><code>events</code></em>
 to the event mask for
<em class="parameter"><code>widget</code></em>
. See <a class="link" href="GtkWidget.html#gtk-widget-set-device-events" title="gtk_widget_set_device_events ()"><code class="function">gtk_widget_set_device_events()</code></a> for details.</p>
<div class="refsect3">
<a name="gtk-widget-add-device-events.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>device</p></td>
<td class="parameter_description"><p>a <span class="type">GdkDevice</span></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>events</p></td>
<td class="parameter_description"><p>an event mask, see <span class="type">GdkEventMask</span></p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-device-enabled"></a><h3>gtk_widget_set_device_enabled ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_set_device_enabled (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                               <em class="parameter"><code><span class="type">GdkDevice</span> *device</code></em>,
                               <em class="parameter"><code><span class="type">gboolean</span> enabled</code></em>);</pre>
<p>Enables or disables a <span class="type">GdkDevice</span> to interact with <em class="parameter"><code>widget</code></em>

and all its children.</p>
<p>It does so by descending through the <span class="type">GdkWindow</span> hierarchy
and enabling the same mask that is has for core events
(i.e. the one that <code class="function">gdk_window_get_events()</code> returns).</p>
<div class="refsect3">
<a name="gtk-widget-set-device-enabled.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>device</p></td>
<td class="parameter_description"><p>a <span class="type">GdkDevice</span></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>enabled</p></td>
<td class="parameter_description"><p>whether to enable the device</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-device-enabled"></a><h3>gtk_widget_get_device_enabled ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_widget_get_device_enabled (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                               <em class="parameter"><code><span class="type">GdkDevice</span> *device</code></em>);</pre>
<p>Returns whether <em class="parameter"><code>device</code></em>
 can interact with <em class="parameter"><code>widget</code></em>
 and its
children. See <a class="link" href="GtkWidget.html#gtk-widget-set-device-enabled" title="gtk_widget_set_device_enabled ()"><code class="function">gtk_widget_set_device_enabled()</code></a>.</p>
<div class="refsect3">
<a name="gtk-widget-get-device-enabled.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>device</p></td>
<td class="parameter_description"><p>a <span class="type">GdkDevice</span></p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-device-enabled.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> is <em class="parameter"><code>device</code></em>
is enabled for <em class="parameter"><code>widget</code></em>
</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-toplevel"></a><h3>gtk_widget_get_toplevel ()</h3>
<pre class="programlisting"><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="returnvalue">GtkWidget</span></a> *
gtk_widget_get_toplevel (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>This function returns the topmost widget in the container hierarchy
<em class="parameter"><code>widget</code></em>
 is a part of. If <em class="parameter"><code>widget</code></em>
 has no parent widgets, it will be
returned as the topmost widget. No reference will be added to the
returned widget; it should not be unreferenced.</p>
<p>Note the difference in behavior vs. <a class="link" href="GtkWidget.html#gtk-widget-get-ancestor" title="gtk_widget_get_ancestor ()"><code class="function">gtk_widget_get_ancestor()</code></a>;
<code class="literal">gtk_widget_get_ancestor (widget, GTK_TYPE_WINDOW)</code>
would return
<code class="literal">NULL</code> if <em class="parameter"><code>widget</code></em>
 wasn’t inside a toplevel window, and if the
window was inside a <span class="type">GtkWindow-derived</span> widget which was in turn
inside the toplevel <a class="link" href="GtkWindow.html" title="GtkWindow"><span class="type">GtkWindow</span></a>. While the second case may
seem unlikely, it actually happens when a <a class="link" href="GtkPlug.html" title="GtkPlug"><span class="type">GtkPlug</span></a> is embedded
inside a <a class="link" href="GtkSocket.html" title="GtkSocket"><span class="type">GtkSocket</span></a> within the same application.</p>
<p>To reliably find the toplevel <a class="link" href="GtkWindow.html" title="GtkWindow"><span class="type">GtkWindow</span></a>, use
<a class="link" href="GtkWidget.html#gtk-widget-get-toplevel" title="gtk_widget_get_toplevel ()"><code class="function">gtk_widget_get_toplevel()</code></a> and call <code class="function">GTK_IS_WINDOW()</code>
on the result. For instance, to get the title of a widget's toplevel
window, one might use:</p>
<div class="informalexample">
  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
    <tbody>
      <tr>
        <td class="listing_lines" align="right"><pre>1
2
3
4
5
6
7
8
9
10
11</pre></td>
        <td class="listing_code"><pre class="programlisting"><span class="k">static</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">*</span>
<span class="n">get_widget_toplevel_title</span> <span class="p">(</span><span class="n">GtkWidget</span> <span class="o">*</span><span class="n">widget</span><span class="p">)</span>
<span class="p">{</span>
  <span class="n">GtkWidget</span> <span class="o">*</span><span class="n">toplevel</span> <span class="o">=</span> <span class="n">gtk_widget_get_toplevel</span> <span class="p">(</span><span class="n">widget</span><span class="p">);</span>
  <span class="k">if</span> <span class="p">(</span><span class="n">GTK_IS_WINDOW</span> <span class="p">(</span><span class="n">toplevel</span><span class="p">))</span>
    <span class="p">{</span>
      <span class="k">return</span> <span class="nf">gtk_window_get_title</span> <span class="p">(</span><span class="n">GTK_WINDOW</span> <span class="p">(</span><span class="n">toplevel</span><span class="p">));</span>
    <span class="p">}</span>

  <span class="k">return</span> <span class="nb">NULL</span><span class="p">;</span>
<span class="p">}</span></pre></td>
      </tr>
    </tbody>
  </table>
</div>

<p></p>
<div class="refsect3">
<a name="gtk-widget-get-toplevel.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-toplevel.returns"></a><h4>Returns</h4>
<p>the topmost ancestor of <em class="parameter"><code>widget</code></em>
, or <em class="parameter"><code>widget</code></em>
itself
if there’s no ancestor. </p>
<p><span class="annotation">[<acronym title="The data is owned by the callee, which is responsible of freeing it."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-ancestor"></a><h3>gtk_widget_get_ancestor ()</h3>
<pre class="programlisting"><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="returnvalue">GtkWidget</span></a> *
gtk_widget_get_ancestor (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                         <em class="parameter"><code><span class="type">GType</span> widget_type</code></em>);</pre>
<p>Gets the first ancestor of <em class="parameter"><code>widget</code></em>
 with type <em class="parameter"><code>widget_type</code></em>
. For example,
<code class="literal">gtk_widget_get_ancestor (widget, GTK_TYPE_BOX)</code> gets
the first <a class="link" href="GtkBox.html" title="GtkBox"><span class="type">GtkBox</span></a> that’s an ancestor of <em class="parameter"><code>widget</code></em>
. No reference will be
added to the returned widget; it should not be unreferenced. See note
about checking for a toplevel <a class="link" href="GtkWindow.html" title="GtkWindow"><span class="type">GtkWindow</span></a> in the docs for
<a class="link" href="GtkWidget.html#gtk-widget-get-toplevel" title="gtk_widget_get_toplevel ()"><code class="function">gtk_widget_get_toplevel()</code></a>.</p>
<p>Note that unlike <a class="link" href="GtkWidget.html#gtk-widget-is-ancestor" title="gtk_widget_is_ancestor ()"><code class="function">gtk_widget_is_ancestor()</code></a>, <a class="link" href="GtkWidget.html#gtk-widget-get-ancestor" title="gtk_widget_get_ancestor ()"><code class="function">gtk_widget_get_ancestor()</code></a>
considers <em class="parameter"><code>widget</code></em>
 to be an ancestor of itself.</p>
<div class="refsect3">
<a name="gtk-widget-get-ancestor.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>widget_type</p></td>
<td class="parameter_description"><p>ancestor type</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-ancestor.returns"></a><h4>Returns</h4>
<p>the ancestor widget, or <code class="literal">NULL</code> if not found. </p>
<p><span class="annotation">[<acronym title="The data is owned by the callee, which is responsible of freeing it."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-visual"></a><h3>gtk_widget_get_visual ()</h3>
<pre class="programlisting"><span class="returnvalue">GdkVisual</span> *
gtk_widget_get_visual (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Gets the visual that will be used to render <em class="parameter"><code>widget</code></em>
.</p>
<div class="refsect3">
<a name="gtk-widget-get-visual.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-visual.returns"></a><h4>Returns</h4>
<p>the visual for <em class="parameter"><code>widget</code></em>
. </p>
<p><span class="annotation">[<acronym title="The data is owned by the callee, which is responsible of freeing it."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-visual"></a><h3>gtk_widget_set_visual ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_set_visual (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                       <em class="parameter"><code><span class="type">GdkVisual</span> *visual</code></em>);</pre>
<p>Sets the visual that should be used for by widget and its children for
creating <span class="type">GdkWindows</span>. The visual must be on the same <span class="type">GdkScreen</span> as
returned by <a class="link" href="GtkWidget.html#gtk-widget-get-screen" title="gtk_widget_get_screen ()"><code class="function">gtk_widget_get_screen()</code></a>, so handling the
<a class="link" href="GtkWidget.html#GtkWidget-screen-changed" title="The “screen-changed” signal"><span class="type">“screen-changed”</span></a> signal is necessary.</p>
<p>Setting a new <em class="parameter"><code>visual</code></em>
 will not cause <em class="parameter"><code>widget</code></em>
 to recreate its windows,
so you should call this function before <em class="parameter"><code>widget</code></em>
 is realized.</p>
<div class="refsect3">
<a name="gtk-widget-set-visual.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>visual</p></td>
<td class="parameter_description"><p>visual to be used or <code class="literal">NULL</code> to unset a previous one. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-pointer"></a><h3>gtk_widget_get_pointer ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_get_pointer (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                        <em class="parameter"><code><span class="type">gint</span> *x</code></em>,
                        <em class="parameter"><code><span class="type">gint</span> *y</code></em>);</pre>
<div class="warning">
<p><code class="literal">gtk_widget_get_pointer</code> has been deprecated since version 3.4 and should not be used in newly-written code.</p>
<p>Use <code class="function">gdk_window_get_device_position()</code> instead.</p>
</div>
<p>Obtains the location of the mouse pointer in widget coordinates.
Widget coordinates are a bit odd; for historical reasons, they are
defined as <em class="parameter"><code>widget-&gt;window</code></em>
 coordinates for widgets that return <code class="literal">TRUE</code> for
<a class="link" href="GtkWidget.html#gtk-widget-get-has-window" title="gtk_widget_get_has_window ()"><code class="function">gtk_widget_get_has_window()</code></a>; and are relative to <em class="parameter"><code>widget-&gt;allocation.x</code></em>
,
<em class="parameter"><code>widget-&gt;allocation.y</code></em>
 otherwise.</p>
<div class="refsect3">
<a name="gtk-widget-get-pointer.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>x</p></td>
<td class="parameter_description"><p>return location for the X coordinate, or <code class="literal">NULL</code>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>y</p></td>
<td class="parameter_description"><p>return location for the Y coordinate, or <code class="literal">NULL</code>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-is-ancestor"></a><h3>gtk_widget_is_ancestor ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_widget_is_ancestor (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                        <em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *ancestor</code></em>);</pre>
<p>Determines whether <em class="parameter"><code>widget</code></em>
 is somewhere inside <em class="parameter"><code>ancestor</code></em>
, possibly with
intermediate containers.</p>
<div class="refsect3">
<a name="gtk-widget-is-ancestor.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>ancestor</p></td>
<td class="parameter_description"><p>another <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-is-ancestor.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if <em class="parameter"><code>ancestor</code></em>
contains <em class="parameter"><code>widget</code></em>
as a child,
grandchild, great grandchild, etc.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-translate-coordinates"></a><h3>gtk_widget_translate_coordinates ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_widget_translate_coordinates (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *src_widget</code></em>,
                                  <em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *dest_widget</code></em>,
                                  <em class="parameter"><code><span class="type">gint</span> src_x</code></em>,
                                  <em class="parameter"><code><span class="type">gint</span> src_y</code></em>,
                                  <em class="parameter"><code><span class="type">gint</span> *dest_x</code></em>,
                                  <em class="parameter"><code><span class="type">gint</span> *dest_y</code></em>);</pre>
<p>Translate coordinates relative to <em class="parameter"><code>src_widget</code></em>
’s allocation to coordinates
relative to <em class="parameter"><code>dest_widget</code></em>
’s allocations. In order to perform this
operation, both widgets must be realized, and must share a common
toplevel.</p>
<div class="refsect3">
<a name="gtk-widget-translate-coordinates.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>src_widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>dest_widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>src_x</p></td>
<td class="parameter_description"><p>X position relative to <em class="parameter"><code>src_widget</code></em>
</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>src_y</p></td>
<td class="parameter_description"><p>Y position relative to <em class="parameter"><code>src_widget</code></em>
</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>dest_x</p></td>
<td class="parameter_description"><p>location to store X position relative to <em class="parameter"><code>dest_widget</code></em>
. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL may be passed instead of a pointer to a location."><span class="acronym">optional</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>dest_y</p></td>
<td class="parameter_description"><p>location to store Y position relative to <em class="parameter"><code>dest_widget</code></em>
. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL may be passed instead of a pointer to a location."><span class="acronym">optional</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-translate-coordinates.returns"></a><h4>Returns</h4>
<p> <code class="literal">FALSE</code> if either widget was not realized, or there
was no common ancestor. In this case, nothing is stored in
*<em class="parameter"><code>dest_x</code></em>
and *<em class="parameter"><code>dest_y</code></em>
. Otherwise <code class="literal">TRUE</code>.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-hide-on-delete"></a><h3>gtk_widget_hide_on_delete ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_widget_hide_on_delete (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Utility function; intended to be connected to the <a class="link" href="GtkWidget.html#GtkWidget-delete-event" title="The “delete-event” signal"><span class="type">“delete-event”</span></a>
signal on a <a class="link" href="GtkWindow.html" title="GtkWindow"><span class="type">GtkWindow</span></a>. The function calls <a class="link" href="GtkWidget.html#gtk-widget-hide" title="gtk_widget_hide ()"><code class="function">gtk_widget_hide()</code></a> on its
argument, then returns <code class="literal">TRUE</code>. If connected to ::delete-event, the
result is that clicking the close button for a window (on the
window frame, top right corner usually) will hide but not destroy
the window. By default, GTK+ destroys windows when ::delete-event
is received.</p>
<div class="refsect3">
<a name="gtk-widget-hide-on-delete.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-hide-on-delete.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-style"></a><h3>gtk_widget_set_style ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_set_style (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                      <em class="parameter"><code><a class="link" href="GtkStyle.html" title="GtkStyle"><span class="type">GtkStyle</span></a> *style</code></em>);</pre>
<div class="warning">
<p><code class="literal">gtk_widget_set_style</code> has been deprecated since version 3.0 and should not be used in newly-written code.</p>
<p>Use <a class="link" href="GtkStyleContext.html" title="GtkStyleContext"><span class="type">GtkStyleContext</span></a> instead</p>
</div>
<p>Used to set the <a class="link" href="GtkStyle.html" title="GtkStyle"><span class="type">GtkStyle</span></a> for a widget (<em class="parameter"><code>widget-&gt;style</code></em>
). Since
GTK 3, this function does nothing, the passed in style is ignored.</p>
<div class="refsect3">
<a name="gtk-widget-set-style.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>style</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkStyle.html" title="GtkStyle"><span class="type">GtkStyle</span></a>, or <code class="literal">NULL</code> to remove the effect
of a previous call to <a class="link" href="GtkWidget.html#gtk-widget-set-style" title="gtk_widget_set_style ()"><code class="function">gtk_widget_set_style()</code></a> and go back to
the default style. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-ensure-style"></a><h3>gtk_widget_ensure_style ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_ensure_style (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<div class="warning">
<p><code class="literal">gtk_widget_ensure_style</code> has been deprecated since version 3.0 and should not be used in newly-written code.</p>
<p>Use <a class="link" href="GtkStyleContext.html" title="GtkStyleContext"><span class="type">GtkStyleContext</span></a> instead</p>
</div>
<p>Ensures that <em class="parameter"><code>widget</code></em>
 has a style (<em class="parameter"><code>widget-&gt;style</code></em>
).</p>
<p>Not a very useful function; most of the time, if you
want the style, the widget is realized, and realized
widgets are guaranteed to have a style already.</p>
<div class="refsect3">
<a name="gtk-widget-ensure-style.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-style"></a><h3>gtk_widget_get_style ()</h3>
<pre class="programlisting"><a class="link" href="GtkStyle.html" title="GtkStyle"><span class="returnvalue">GtkStyle</span></a> *
gtk_widget_get_style (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<div class="warning">
<p><code class="literal">gtk_widget_get_style</code> has been deprecated since version 3.0 and should not be used in newly-written code.</p>
<p>Use <a class="link" href="GtkStyleContext.html" title="GtkStyleContext"><span class="type">GtkStyleContext</span></a> instead</p>
</div>
<p>Simply an accessor function that returns <em class="parameter"><code>widget-&gt;style</code></em>
.</p>
<div class="refsect3">
<a name="gtk-widget-get-style.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-style.returns"></a><h4>Returns</h4>
<p>the widget’s <a class="link" href="GtkStyle.html" title="GtkStyle"><span class="type">GtkStyle</span></a>. </p>
<p><span class="annotation">[<acronym title="The data is owned by the callee, which is responsible of freeing it."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-reset-rc-styles"></a><h3>gtk_widget_reset_rc_styles ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_reset_rc_styles (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<div class="warning">
<p><code class="literal">gtk_widget_reset_rc_styles</code> has been deprecated since version 3.0 and should not be used in newly-written code.</p>
<p>Use <a class="link" href="GtkStyleContext.html" title="GtkStyleContext"><span class="type">GtkStyleContext</span></a> instead, and <a class="link" href="GtkWidget.html#gtk-widget-reset-style" title="gtk_widget_reset_style ()"><code class="function">gtk_widget_reset_style()</code></a></p>
</div>
<p>Reset the styles of <em class="parameter"><code>widget</code></em>
 and all descendents, so when
they are looked up again, they get the correct values
for the currently loaded RC file settings.</p>
<p>This function is not useful for applications.</p>
<div class="refsect3">
<a name="gtk-widget-reset-rc-styles.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-default-style"></a><h3>gtk_widget_get_default_style ()</h3>
<pre class="programlisting"><a class="link" href="GtkStyle.html" title="GtkStyle"><span class="returnvalue">GtkStyle</span></a> *
gtk_widget_get_default_style (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<div class="warning">
<p><code class="literal">gtk_widget_get_default_style</code> has been deprecated since version 3.0 and should not be used in newly-written code.</p>
<p>Use <a class="link" href="GtkStyleContext.html" title="GtkStyleContext"><span class="type">GtkStyleContext</span></a> instead, and
    <a class="link" href="GtkCssProvider.html#gtk-css-provider-get-default" title="gtk_css_provider_get_default ()"><code class="function">gtk_css_provider_get_default()</code></a> to obtain a <a class="link" href="GtkStyleProvider.html" title="GtkStyleProvider"><span class="type">GtkStyleProvider</span></a>
    with the default widget style information.</p>
</div>
<p>Returns the default style used by all widgets initially.</p>
<div class="refsect3">
<a name="gtk-widget-get-default-style.returns"></a><h4>Returns</h4>
<p>the default style. This <a class="link" href="GtkStyle.html" title="GtkStyle"><span class="type">GtkStyle</span></a>
object is owned by GTK+ and should not be modified or freed. </p>
<p><span class="annotation">[<acronym title="The data is owned by the callee, which is responsible of freeing it."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-direction"></a><h3>gtk_widget_set_direction ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_set_direction (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                          <em class="parameter"><code><a class="link" href="GtkWidget.html#GtkTextDirection" title="enum GtkTextDirection"><span class="type">GtkTextDirection</span></a> dir</code></em>);</pre>
<p>Sets the reading direction on a particular widget. This direction
controls the primary direction for widgets containing text,
and also the direction in which the children of a container are
packed. The ability to set the direction is present in order
so that correct localization into languages with right-to-left
reading directions can be done. Generally, applications will
let the default reading direction present, except for containers
where the containers are arranged in an order that is explicitly
visual rather than logical (such as buttons for text justification).</p>
<p>If the direction is set to <a class="link" href="GtkWidget.html#GTK-TEXT-DIR-NONE:CAPS"><code class="literal">GTK_TEXT_DIR_NONE</code></a>, then the value
set by <a class="link" href="GtkWidget.html#gtk-widget-set-default-direction" title="gtk_widget_set_default_direction ()"><code class="function">gtk_widget_set_default_direction()</code></a> will be used.</p>
<div class="refsect3">
<a name="gtk-widget-set-direction.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>dir</p></td>
<td class="parameter_description"><p>the new direction</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-direction"></a><h3>gtk_widget_get_direction ()</h3>
<pre class="programlisting"><a class="link" href="GtkWidget.html#GtkTextDirection" title="enum GtkTextDirection"><span class="returnvalue">GtkTextDirection</span></a>
gtk_widget_get_direction (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Gets the reading direction for a particular widget. See
<a class="link" href="GtkWidget.html#gtk-widget-set-direction" title="gtk_widget_set_direction ()"><code class="function">gtk_widget_set_direction()</code></a>.</p>
<div class="refsect3">
<a name="gtk-widget-get-direction.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-direction.returns"></a><h4>Returns</h4>
<p> the reading direction for the widget.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-default-direction"></a><h3>gtk_widget_set_default_direction ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_set_default_direction (<em class="parameter"><code><a class="link" href="GtkWidget.html#GtkTextDirection" title="enum GtkTextDirection"><span class="type">GtkTextDirection</span></a> dir</code></em>);</pre>
<p>Sets the default reading direction for widgets where the
direction has not been explicitly set by <a class="link" href="GtkWidget.html#gtk-widget-set-direction" title="gtk_widget_set_direction ()"><code class="function">gtk_widget_set_direction()</code></a>.</p>
<div class="refsect3">
<a name="gtk-widget-set-default-direction.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>dir</p></td>
<td class="parameter_description"><p>the new default direction. This cannot be
<a class="link" href="GtkWidget.html#GTK-TEXT-DIR-NONE:CAPS"><code class="literal">GTK_TEXT_DIR_NONE</code></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-default-direction"></a><h3>gtk_widget_get_default_direction ()</h3>
<pre class="programlisting"><a class="link" href="GtkWidget.html#GtkTextDirection" title="enum GtkTextDirection"><span class="returnvalue">GtkTextDirection</span></a>
gtk_widget_get_default_direction (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>Obtains the current default reading direction. See
<a class="link" href="GtkWidget.html#gtk-widget-set-default-direction" title="gtk_widget_set_default_direction ()"><code class="function">gtk_widget_set_default_direction()</code></a>.</p>
<div class="refsect3">
<a name="gtk-widget-get-default-direction.returns"></a><h4>Returns</h4>
<p> the current default direction.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-shape-combine-region"></a><h3>gtk_widget_shape_combine_region ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_shape_combine_region (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/cairo/cairo-Regions.html#cairo-region-t"><span class="type">cairo_region_t</span></a> *region</code></em>);</pre>
<p>Sets a shape for this widget’s GDK window. This allows for
transparent windows etc., see <code class="function">gdk_window_shape_combine_region()</code>
for more information.</p>
<div class="refsect3">
<a name="gtk-widget-shape-combine-region.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>region</p></td>
<td class="parameter_description"><p>shape to be added, or <code class="literal">NULL</code> to remove an existing shape. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-input-shape-combine-region"></a><h3>gtk_widget_input_shape_combine_region ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_input_shape_combine_region (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                       <em class="parameter"><code><a href="/usr/share/gtk-doc/html/cairo/cairo-Regions.html#cairo-region-t"><span class="type">cairo_region_t</span></a> *region</code></em>);</pre>
<p>Sets an input shape for this widget’s GDK window. This allows for
windows which react to mouse click in a nonrectangular region, see
<code class="function">gdk_window_input_shape_combine_region()</code> for more information.</p>
<div class="refsect3">
<a name="gtk-widget-input-shape-combine-region.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>region</p></td>
<td class="parameter_description"><p>shape to be added, or <code class="literal">NULL</code> to remove an existing shape. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-path"></a><h3>gtk_widget_path ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_path (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                 <em class="parameter"><code><span class="type">guint</span> *path_length</code></em>,
                 <em class="parameter"><code><span class="type">gchar</span> **path</code></em>,
                 <em class="parameter"><code><span class="type">gchar</span> **path_reversed</code></em>);</pre>
<div class="warning">
<p><code class="literal">gtk_widget_path</code> has been deprecated since version 3.0 and should not be used in newly-written code.</p>
<p>Use <a class="link" href="GtkWidget.html#gtk-widget-get-path" title="gtk_widget_get_path ()"><code class="function">gtk_widget_get_path()</code></a> instead</p>
</div>
<p>Obtains the full path to <em class="parameter"><code>widget</code></em>
. The path is simply the name of a
widget and all its parents in the container hierarchy, separated by
periods. The name of a widget comes from
<a class="link" href="GtkWidget.html#gtk-widget-get-name" title="gtk_widget_get_name ()"><code class="function">gtk_widget_get_name()</code></a>. Paths are used to apply styles to a widget
in gtkrc configuration files. Widget names are the type of the
widget by default (e.g. “GtkButton”) or can be set to an
application-specific value with <a class="link" href="GtkWidget.html#gtk-widget-set-name" title="gtk_widget_set_name ()"><code class="function">gtk_widget_set_name()</code></a>. By setting
the name of a widget, you allow users or theme authors to apply
styles to that specific widget in their gtkrc
file. <em class="parameter"><code>path_reversed_p</code></em>
 fills in the path in reverse order,
i.e. starting with <em class="parameter"><code>widget</code></em>
’s name instead of starting with the name
of <em class="parameter"><code>widget</code></em>
’s outermost ancestor.</p>
<div class="refsect3">
<a name="gtk-widget-path.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>path_length</p></td>
<td class="parameter_description"><p>location to store length of the path,
or <code class="literal">NULL</code>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>path</p></td>
<td class="parameter_description"><p>location to store allocated path string,
or <code class="literal">NULL</code>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>path_reversed</p></td>
<td class="parameter_description"><p>location to store allocated reverse
path string, or <code class="literal">NULL</code>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-class-path"></a><h3>gtk_widget_class_path ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_class_path (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                       <em class="parameter"><code><span class="type">guint</span> *path_length</code></em>,
                       <em class="parameter"><code><span class="type">gchar</span> **path</code></em>,
                       <em class="parameter"><code><span class="type">gchar</span> **path_reversed</code></em>);</pre>
<div class="warning">
<p><code class="literal">gtk_widget_class_path</code> has been deprecated since version 3.0 and should not be used in newly-written code.</p>
<p>Use <a class="link" href="GtkWidget.html#gtk-widget-get-path" title="gtk_widget_get_path ()"><code class="function">gtk_widget_get_path()</code></a> instead</p>
</div>
<p>Same as <a class="link" href="GtkWidget.html#gtk-widget-path" title="gtk_widget_path ()"><code class="function">gtk_widget_path()</code></a>, but always uses the name of a widget’s type,
never uses a custom name set with <a class="link" href="GtkWidget.html#gtk-widget-set-name" title="gtk_widget_set_name ()"><code class="function">gtk_widget_set_name()</code></a>.</p>
<div class="refsect3">
<a name="gtk-widget-class-path.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>path_length</p></td>
<td class="parameter_description"><p>location to store the length of the
class path, or <code class="literal">NULL</code>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL may be passed instead of a pointer to a location."><span class="acronym">optional</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>path</p></td>
<td class="parameter_description"><p>location to store the class path as an
allocated string, or <code class="literal">NULL</code>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL may be passed instead of a pointer to a location."><span class="acronym">optional</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>path_reversed</p></td>
<td class="parameter_description"><p>location to store the reverse
class path as an allocated string, or <code class="literal">NULL</code>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL may be passed instead of a pointer to a location."><span class="acronym">optional</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-composite-name"></a><h3>gtk_widget_get_composite_name ()</h3>
<pre class="programlisting"><span class="returnvalue">gchar</span> *
gtk_widget_get_composite_name (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<div class="warning">
<p><code class="literal">gtk_widget_get_composite_name</code> has been deprecated since version 3.10 and should not be used in newly-written code.</p>
<p>Use <a class="link" href="GtkWidget.html#gtk-widget-class-set-template" title="gtk_widget_class_set_template ()"><code class="function">gtk_widget_class_set_template()</code></a>, or don’t use this API at all.</p>
</div>
<p>Obtains the composite name of a widget.</p>
<div class="refsect3">
<a name="gtk-widget-get-composite-name.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-composite-name.returns"></a><h4>Returns</h4>
<p> the composite name of <em class="parameter"><code>widget</code></em>
, or <code class="literal">NULL</code> if <em class="parameter"><code>widget</code></em>
is not
a composite child. The string should be freed when it is no
longer needed.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-override-background-color"></a><h3>gtk_widget_override_background_color ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_override_background_color (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                      <em class="parameter"><code><a class="link" href="gtk3-Standard-Enumerations.html#GtkStateFlags" title="enum GtkStateFlags"><span class="type">GtkStateFlags</span></a> state</code></em>,
                                      <em class="parameter"><code>const <span class="type">GdkRGBA</span> *color</code></em>);</pre>
<div class="warning">
<p><code class="literal">gtk_widget_override_background_color</code> has been deprecated since version 3.16 and should not be used in newly-written code.</p>
<p>This function is not useful in the context of CSS-based
  rendering. If you wish to change the way a widget renders its background
  you should use a custom CSS style, through an application-specific
  <a class="link" href="GtkStyleProvider.html" title="GtkStyleProvider"><span class="type">GtkStyleProvider</span></a> and a CSS style class. You can also override the default
  drawing of a widget through the <a class="link" href="GtkWidget.html#GtkWidget-draw" title="The “draw” signal"><span class="type">“draw”</span></a> signal, and use Cairo to
  draw a specific color, regardless of the CSS style.</p>
</div>
<p>Sets the background color to use for a widget.</p>
<p>All other style values are left untouched.
See <a class="link" href="GtkWidget.html#gtk-widget-override-color" title="gtk_widget_override_color ()"><code class="function">gtk_widget_override_color()</code></a>.</p>
<div class="refsect3">
<a name="gtk-widget-override-background-color.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>state</p></td>
<td class="parameter_description"><p>the state for which to set the background color</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>color</p></td>
<td class="parameter_description"><p>the color to assign, or <code class="literal">NULL</code> to undo the effect
of previous calls to <a class="link" href="GtkWidget.html#gtk-widget-override-background-color" title="gtk_widget_override_background_color ()"><code class="function">gtk_widget_override_background_color()</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-override-color"></a><h3>gtk_widget_override_color ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_override_color (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                           <em class="parameter"><code><a class="link" href="gtk3-Standard-Enumerations.html#GtkStateFlags" title="enum GtkStateFlags"><span class="type">GtkStateFlags</span></a> state</code></em>,
                           <em class="parameter"><code>const <span class="type">GdkRGBA</span> *color</code></em>);</pre>
<div class="warning">
<p><code class="literal">gtk_widget_override_color</code> has been deprecated since version 3.16 and should not be used in newly-written code.</p>
<p>Use a custom style provider and style classes instead</p>
</div>
<p>Sets the color to use for a widget.</p>
<p>All other style values are left untouched.</p>
<p>This function does not act recursively. Setting the color of a
container does not affect its children. Note that some widgets that
you may not think of as containers, for instance <a href="GtkButton.html#GtkButton-struct"><span class="type">GtkButtons</span></a>,
are actually containers.</p>
<p>This API is mostly meant as a quick way for applications to
change a widget appearance. If you are developing a widgets
library and intend this change to be themeable, it is better
done by setting meaningful CSS classes in your
widget/container implementation through <a class="link" href="GtkStyleContext.html#gtk-style-context-add-class" title="gtk_style_context_add_class ()"><code class="function">gtk_style_context_add_class()</code></a>.</p>
<p>This way, your widget library can install a <a class="link" href="GtkCssProvider.html" title="GtkCssProvider"><span class="type">GtkCssProvider</span></a>
with the <a class="link" href="GtkStyleProvider.html#GTK-STYLE-PROVIDER-PRIORITY-FALLBACK:CAPS" title="GTK_STYLE_PROVIDER_PRIORITY_FALLBACK"><code class="literal">GTK_STYLE_PROVIDER_PRIORITY_FALLBACK</code></a> priority in order
to provide a default styling for those widgets that need so, and
this theming may fully overridden by the user’s theme.</p>
<p>Note that for complex widgets this may bring in undesired
results (such as uniform background color everywhere), in
these cases it is better to fully style such widgets through a
<a class="link" href="GtkCssProvider.html" title="GtkCssProvider"><span class="type">GtkCssProvider</span></a> with the <a class="link" href="GtkStyleProvider.html#GTK-STYLE-PROVIDER-PRIORITY-APPLICATION:CAPS" title="GTK_STYLE_PROVIDER_PRIORITY_APPLICATION"><code class="literal">GTK_STYLE_PROVIDER_PRIORITY_APPLICATION</code></a>
priority.</p>
<div class="refsect3">
<a name="gtk-widget-override-color.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>state</p></td>
<td class="parameter_description"><p>the state for which to set the color</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>color</p></td>
<td class="parameter_description"><p>the color to assign, or <code class="literal">NULL</code> to undo the effect
of previous calls to <a class="link" href="GtkWidget.html#gtk-widget-override-color" title="gtk_widget_override_color ()"><code class="function">gtk_widget_override_color()</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-override-font"></a><h3>gtk_widget_override_font ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_override_font (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                          <em class="parameter"><code>const <span class="type">PangoFontDescription</span> *font_desc</code></em>);</pre>
<div class="warning">
<p><code class="literal">gtk_widget_override_font</code> has been deprecated since version 3.16 and should not be used in newly-written code.</p>
<p>This function is not useful in the context of CSS-based
  rendering. If you wish to change the font a widget uses to render its text
  you should use a custom CSS style, through an application-specific
  <a class="link" href="GtkStyleProvider.html" title="GtkStyleProvider"><span class="type">GtkStyleProvider</span></a> and a CSS style class.</p>
</div>
<p>Sets the font to use for a widget. All other style values are
left untouched. See <a class="link" href="GtkWidget.html#gtk-widget-override-color" title="gtk_widget_override_color ()"><code class="function">gtk_widget_override_color()</code></a>.</p>
<div class="refsect3">
<a name="gtk-widget-override-font.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>font_desc</p></td>
<td class="parameter_description"><p>the font description to use, or <code class="literal">NULL</code> to undo
the effect of previous calls to <a class="link" href="GtkWidget.html#gtk-widget-override-font" title="gtk_widget_override_font ()"><code class="function">gtk_widget_override_font()</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-override-symbolic-color"></a><h3>gtk_widget_override_symbolic_color ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_override_symbolic_color (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                    <em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>,
                                    <em class="parameter"><code>const <span class="type">GdkRGBA</span> *color</code></em>);</pre>
<div class="warning">
<p><code class="literal">gtk_widget_override_symbolic_color</code> has been deprecated since version 3.16 and should not be used in newly-written code.</p>
<p>This function is not useful in the context of CSS-based
  rendering. If you wish to change the color used to render symbolic icons
  you should use a custom CSS style, through an application-specific
  <a class="link" href="GtkStyleProvider.html" title="GtkStyleProvider"><span class="type">GtkStyleProvider</span></a> and a CSS style class.</p>
</div>
<p>Sets a symbolic color for a widget.</p>
<p>All other style values are left untouched.
See <a class="link" href="GtkWidget.html#gtk-widget-override-color" title="gtk_widget_override_color ()"><code class="function">gtk_widget_override_color()</code></a> for overriding the foreground
or background color.</p>
<div class="refsect3">
<a name="gtk-widget-override-symbolic-color.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>name</p></td>
<td class="parameter_description"><p>the name of the symbolic color to modify</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>color</p></td>
<td class="parameter_description"><p>the color to assign (does not need
to be allocated), or <code class="literal">NULL</code> to undo the effect of previous
calls to <a class="link" href="GtkWidget.html#gtk-widget-override-symbolic-color" title="gtk_widget_override_symbolic_color ()"><code class="function">gtk_widget_override_symbolic_color()</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-override-cursor"></a><h3>gtk_widget_override_cursor ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_override_cursor (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                            <em class="parameter"><code>const <span class="type">GdkRGBA</span> *cursor</code></em>,
                            <em class="parameter"><code>const <span class="type">GdkRGBA</span> *secondary_cursor</code></em>);</pre>
<div class="warning">
<p><code class="literal">gtk_widget_override_cursor</code> has been deprecated since version 3.16 and should not be used in newly-written code.</p>
<p>This function is not useful in the context of CSS-based
  rendering. If you wish to change the color used to render the primary
  and secondary cursors you should use a custom CSS style, through an
  application-specific <a class="link" href="GtkStyleProvider.html" title="GtkStyleProvider"><span class="type">GtkStyleProvider</span></a> and a CSS style class.</p>
</div>
<p>Sets the cursor color to use in a widget, overriding the
cursor-color and secondary-cursor-color
style properties. All other style values are left untouched.
See also <a class="link" href="GtkWidget.html#gtk-widget-modify-style" title="gtk_widget_modify_style ()"><code class="function">gtk_widget_modify_style()</code></a>.</p>
<p>Note that the underlying properties have the <span class="type">GdkColor</span> type,
so the alpha value in <em class="parameter"><code>primary</code></em>
 and <em class="parameter"><code>secondary</code></em>
 will be ignored.</p>
<div class="refsect3">
<a name="gtk-widget-override-cursor.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>cursor</p></td>
<td class="parameter_description"><p>the color to use for primary cursor (does not need to be
allocated), or <code class="literal">NULL</code> to undo the effect of previous calls to
of <a class="link" href="GtkWidget.html#gtk-widget-override-cursor" title="gtk_widget_override_cursor ()"><code class="function">gtk_widget_override_cursor()</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>secondary_cursor</p></td>
<td class="parameter_description"><p>the color to use for secondary cursor (does not
need to be allocated), or <code class="literal">NULL</code> to undo the effect of previous
calls to of <a class="link" href="GtkWidget.html#gtk-widget-override-cursor" title="gtk_widget_override_cursor ()"><code class="function">gtk_widget_override_cursor()</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-modify-style"></a><h3>gtk_widget_modify_style ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_modify_style (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                         <em class="parameter"><code><a class="link" href="gtk3-Resource-Files.html#GtkRcStyle"><span class="type">GtkRcStyle</span></a> *style</code></em>);</pre>
<div class="warning">
<p><code class="literal">gtk_widget_modify_style</code> has been deprecated since version 3.0 and should not be used in newly-written code.</p>
<p>Use <a class="link" href="GtkStyleContext.html" title="GtkStyleContext"><span class="type">GtkStyleContext</span></a> with a custom <a class="link" href="GtkStyleProvider.html" title="GtkStyleProvider"><span class="type">GtkStyleProvider</span></a> instead</p>
</div>
<p>Modifies style values on the widget.</p>
<p>Modifications made using this technique take precedence over
style values set via an RC file, however, they will be overridden
if a style is explicitly set on the widget using <a class="link" href="GtkWidget.html#gtk-widget-set-style" title="gtk_widget_set_style ()"><code class="function">gtk_widget_set_style()</code></a>.
The <a class="link" href="gtk3-Resource-Files.html#GtkRcStyle-struct" title="GtkRcStyle"><span class="type">GtkRcStyle</span></a> is designed so each field can either be
set or unset, so it is possible, using this function, to modify some
style values and leave the others unchanged.</p>
<p>Note that modifications made with this function are not cumulative
with previous calls to <a class="link" href="GtkWidget.html#gtk-widget-modify-style" title="gtk_widget_modify_style ()"><code class="function">gtk_widget_modify_style()</code></a> or with such
functions as <a class="link" href="GtkWidget.html#gtk-widget-modify-fg" title="gtk_widget_modify_fg ()"><code class="function">gtk_widget_modify_fg()</code></a>. If you wish to retain
previous values, you must first call <a class="link" href="GtkWidget.html#gtk-widget-get-modifier-style" title="gtk_widget_get_modifier_style ()"><code class="function">gtk_widget_get_modifier_style()</code></a>,
make your modifications to the returned style, then call
<a class="link" href="GtkWidget.html#gtk-widget-modify-style" title="gtk_widget_modify_style ()"><code class="function">gtk_widget_modify_style()</code></a> with that style. On the other hand,
if you first call <a class="link" href="GtkWidget.html#gtk-widget-modify-style" title="gtk_widget_modify_style ()"><code class="function">gtk_widget_modify_style()</code></a>, subsequent calls
to such functions <a class="link" href="GtkWidget.html#gtk-widget-modify-fg" title="gtk_widget_modify_fg ()"><code class="function">gtk_widget_modify_fg()</code></a> will have a cumulative
effect with the initial modifications.</p>
<div class="refsect3">
<a name="gtk-widget-modify-style.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>style</p></td>
<td class="parameter_description"><p>the <a class="link" href="gtk3-Resource-Files.html#GtkRcStyle-struct" title="GtkRcStyle"><span class="type">GtkRcStyle</span></a> holding the style modifications</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-modifier-style"></a><h3>gtk_widget_get_modifier_style ()</h3>
<pre class="programlisting"><a class="link" href="gtk3-Resource-Files.html#GtkRcStyle"><span class="returnvalue">GtkRcStyle</span></a> *
gtk_widget_get_modifier_style (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<div class="warning">
<p><code class="literal">gtk_widget_get_modifier_style</code> has been deprecated since version 3.0 and should not be used in newly-written code.</p>
<p>Use <a class="link" href="GtkStyleContext.html" title="GtkStyleContext"><span class="type">GtkStyleContext</span></a> with a custom <a class="link" href="GtkStyleProvider.html" title="GtkStyleProvider"><span class="type">GtkStyleProvider</span></a> instead</p>
</div>
<p>Returns the current modifier style for the widget. (As set by
<a class="link" href="GtkWidget.html#gtk-widget-modify-style" title="gtk_widget_modify_style ()"><code class="function">gtk_widget_modify_style()</code></a>.) If no style has previously set, a new
<a class="link" href="gtk3-Resource-Files.html#GtkRcStyle"><span class="type">GtkRcStyle</span></a> will be created with all values unset, and set as the
modifier style for the widget. If you make changes to this rc
style, you must call <a class="link" href="GtkWidget.html#gtk-widget-modify-style" title="gtk_widget_modify_style ()"><code class="function">gtk_widget_modify_style()</code></a>, passing in the
returned rc style, to make sure that your changes take effect.</p>
<p>Caution: passing the style back to <a class="link" href="GtkWidget.html#gtk-widget-modify-style" title="gtk_widget_modify_style ()"><code class="function">gtk_widget_modify_style()</code></a> will
normally end up destroying it, because <a class="link" href="GtkWidget.html#gtk-widget-modify-style" title="gtk_widget_modify_style ()"><code class="function">gtk_widget_modify_style()</code></a> copies
the passed-in style and sets the copy as the new modifier style,
thus dropping any reference to the old modifier style. Add a reference
to the modifier style if you want to keep it alive.</p>
<div class="refsect3">
<a name="gtk-widget-get-modifier-style.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-modifier-style.returns"></a><h4>Returns</h4>
<p>the modifier style for the widget.
This rc style is owned by the widget. If you want to keep a
pointer to value this around, you must add a refcount using
<code class="function">g_object_ref()</code>. </p>
<p><span class="annotation">[<acronym title="The data is owned by the callee, which is responsible of freeing it."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-modify-fg"></a><h3>gtk_widget_modify_fg ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_modify_fg (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                      <em class="parameter"><code><a class="link" href="GtkWidget.html#GtkStateType" title="enum GtkStateType"><span class="type">GtkStateType</span></a> state</code></em>,
                      <em class="parameter"><code>const <span class="type">GdkColor</span> *color</code></em>);</pre>
<div class="warning">
<p><code class="literal">gtk_widget_modify_fg</code> has been deprecated since version 3.0 and should not be used in newly-written code.</p>
<p>Use <a class="link" href="GtkWidget.html#gtk-widget-override-color" title="gtk_widget_override_color ()"><code class="function">gtk_widget_override_color()</code></a> instead</p>
</div>
<p>Sets the foreground color for a widget in a particular state.</p>
<p>All other style values are left untouched.
See also <a class="link" href="GtkWidget.html#gtk-widget-modify-style" title="gtk_widget_modify_style ()"><code class="function">gtk_widget_modify_style()</code></a>.</p>
<div class="refsect3">
<a name="gtk-widget-modify-fg.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>state</p></td>
<td class="parameter_description"><p>the state for which to set the foreground color</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>color</p></td>
<td class="parameter_description"><p>the color to assign (does not need to be allocated),
or <code class="literal">NULL</code> to undo the effect of previous calls to
of <a class="link" href="GtkWidget.html#gtk-widget-modify-fg" title="gtk_widget_modify_fg ()"><code class="function">gtk_widget_modify_fg()</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-modify-bg"></a><h3>gtk_widget_modify_bg ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_modify_bg (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                      <em class="parameter"><code><a class="link" href="GtkWidget.html#GtkStateType" title="enum GtkStateType"><span class="type">GtkStateType</span></a> state</code></em>,
                      <em class="parameter"><code>const <span class="type">GdkColor</span> *color</code></em>);</pre>
<div class="warning">
<p><code class="literal">gtk_widget_modify_bg</code> has been deprecated since version 3.0 and should not be used in newly-written code.</p>
<p>Use <a class="link" href="GtkWidget.html#gtk-widget-override-background-color" title="gtk_widget_override_background_color ()"><code class="function">gtk_widget_override_background_color()</code></a> instead</p>
</div>
<p>Sets the background color for a widget in a particular state.</p>
<p>All other style values are left untouched.
See also <a class="link" href="GtkWidget.html#gtk-widget-modify-style" title="gtk_widget_modify_style ()"><code class="function">gtk_widget_modify_style()</code></a>.</p>
<div class="blockquote"><blockquote class="blockquote">
<p>Note that “no window” widgets (which have the <code class="literal">GTK_NO_WINDOW</code>
flag set) draw on their parent container’s window and thus may
not draw any background themselves. This is the case for e.g.
<a class="link" href="GtkLabel.html" title="GtkLabel"><span class="type">GtkLabel</span></a>.</p>
<p>To modify the background of such widgets, you have to set the
background color on their parent; if you want to set the background
of a rectangular area around a label, try placing the label in
a <a class="link" href="GtkEventBox.html" title="GtkEventBox"><span class="type">GtkEventBox</span></a> widget and setting the background color on that.</p>
</blockquote></div>
<div class="refsect3">
<a name="gtk-widget-modify-bg.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>state</p></td>
<td class="parameter_description"><p>the state for which to set the background color</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>color</p></td>
<td class="parameter_description"><p>the color to assign (does not need
to be allocated), or <code class="literal">NULL</code> to undo the effect of previous
calls to of <a class="link" href="GtkWidget.html#gtk-widget-modify-bg" title="gtk_widget_modify_bg ()"><code class="function">gtk_widget_modify_bg()</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-modify-text"></a><h3>gtk_widget_modify_text ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_modify_text (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                        <em class="parameter"><code><a class="link" href="GtkWidget.html#GtkStateType" title="enum GtkStateType"><span class="type">GtkStateType</span></a> state</code></em>,
                        <em class="parameter"><code>const <span class="type">GdkColor</span> *color</code></em>);</pre>
<div class="warning">
<p><code class="literal">gtk_widget_modify_text</code> has been deprecated since version 3.0 and should not be used in newly-written code.</p>
<p>Use <a class="link" href="GtkWidget.html#gtk-widget-override-color" title="gtk_widget_override_color ()"><code class="function">gtk_widget_override_color()</code></a> instead</p>
</div>
<p>Sets the text color for a widget in a particular state.</p>
<p>All other style values are left untouched.
The text color is the foreground color used along with the
base color (see <a class="link" href="GtkWidget.html#gtk-widget-modify-base" title="gtk_widget_modify_base ()"><code class="function">gtk_widget_modify_base()</code></a>) for widgets such
as <a class="link" href="GtkEntry.html" title="GtkEntry"><span class="type">GtkEntry</span></a> and <a class="link" href="GtkTextView.html" title="GtkTextView"><span class="type">GtkTextView</span></a>.
See also <a class="link" href="GtkWidget.html#gtk-widget-modify-style" title="gtk_widget_modify_style ()"><code class="function">gtk_widget_modify_style()</code></a>.</p>
<div class="refsect3">
<a name="gtk-widget-modify-text.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>state</p></td>
<td class="parameter_description"><p>the state for which to set the text color</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>color</p></td>
<td class="parameter_description"><p>the color to assign (does not need to
be allocated), or <code class="literal">NULL</code> to undo the effect of previous
calls to of <a class="link" href="GtkWidget.html#gtk-widget-modify-text" title="gtk_widget_modify_text ()"><code class="function">gtk_widget_modify_text()</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-modify-base"></a><h3>gtk_widget_modify_base ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_modify_base (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                        <em class="parameter"><code><a class="link" href="GtkWidget.html#GtkStateType" title="enum GtkStateType"><span class="type">GtkStateType</span></a> state</code></em>,
                        <em class="parameter"><code>const <span class="type">GdkColor</span> *color</code></em>);</pre>
<div class="warning">
<p><code class="literal">gtk_widget_modify_base</code> has been deprecated since version 3.0 and should not be used in newly-written code.</p>
<p>Use <a class="link" href="GtkWidget.html#gtk-widget-override-background-color" title="gtk_widget_override_background_color ()"><code class="function">gtk_widget_override_background_color()</code></a> instead</p>
</div>
<p>Sets the base color for a widget in a particular state.
All other style values are left untouched. The base color
is the background color used along with the text color
(see <a class="link" href="GtkWidget.html#gtk-widget-modify-text" title="gtk_widget_modify_text ()"><code class="function">gtk_widget_modify_text()</code></a>) for widgets such as <a class="link" href="GtkEntry.html" title="GtkEntry"><span class="type">GtkEntry</span></a>
and <a class="link" href="GtkTextView.html" title="GtkTextView"><span class="type">GtkTextView</span></a>. See also <a class="link" href="GtkWidget.html#gtk-widget-modify-style" title="gtk_widget_modify_style ()"><code class="function">gtk_widget_modify_style()</code></a>.</p>
<div class="blockquote"><blockquote class="blockquote">
<p>Note that “no window” widgets (which have the <code class="literal">GTK_NO_WINDOW</code>
flag set) draw on their parent container’s window and thus may
not draw any background themselves. This is the case for e.g.
<a class="link" href="GtkLabel.html" title="GtkLabel"><span class="type">GtkLabel</span></a>.</p>
<p>To modify the background of such widgets, you have to set the
base color on their parent; if you want to set the background
of a rectangular area around a label, try placing the label in
a <a class="link" href="GtkEventBox.html" title="GtkEventBox"><span class="type">GtkEventBox</span></a> widget and setting the base color on that.</p>
</blockquote></div>
<div class="refsect3">
<a name="gtk-widget-modify-base.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>state</p></td>
<td class="parameter_description"><p>the state for which to set the base color</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>color</p></td>
<td class="parameter_description"><p>the color to assign (does not need to
be allocated), or <code class="literal">NULL</code> to undo the effect of previous
calls to of <a class="link" href="GtkWidget.html#gtk-widget-modify-base" title="gtk_widget_modify_base ()"><code class="function">gtk_widget_modify_base()</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-modify-font"></a><h3>gtk_widget_modify_font ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_modify_font (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                        <em class="parameter"><code><span class="type">PangoFontDescription</span> *font_desc</code></em>);</pre>
<div class="warning">
<p><code class="literal">gtk_widget_modify_font</code> has been deprecated since version 3.0 and should not be used in newly-written code.</p>
<p>Use <a class="link" href="GtkWidget.html#gtk-widget-override-font" title="gtk_widget_override_font ()"><code class="function">gtk_widget_override_font()</code></a> instead</p>
</div>
<p>Sets the font to use for a widget.</p>
<p>All other style values are left untouched.
See also <a class="link" href="GtkWidget.html#gtk-widget-modify-style" title="gtk_widget_modify_style ()"><code class="function">gtk_widget_modify_style()</code></a>.</p>
<div class="refsect3">
<a name="gtk-widget-modify-font.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>font_desc</p></td>
<td class="parameter_description"><p>the font description to use, or <code class="literal">NULL</code>
to undo the effect of previous calls to <a class="link" href="GtkWidget.html#gtk-widget-modify-font" title="gtk_widget_modify_font ()"><code class="function">gtk_widget_modify_font()</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-modify-cursor"></a><h3>gtk_widget_modify_cursor ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_modify_cursor (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                          <em class="parameter"><code>const <span class="type">GdkColor</span> *primary</code></em>,
                          <em class="parameter"><code>const <span class="type">GdkColor</span> *secondary</code></em>);</pre>
<div class="warning">
<p><code class="literal">gtk_widget_modify_cursor</code> has been deprecated since version 3.0 and should not be used in newly-written code.</p>
<p>Use <a class="link" href="GtkWidget.html#gtk-widget-override-cursor" title="gtk_widget_override_cursor ()"><code class="function">gtk_widget_override_cursor()</code></a> instead.</p>
</div>
<p>Sets the cursor color to use in a widget, overriding the <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a>
cursor-color and secondary-cursor-color
style properties.</p>
<p>All other style values are left untouched.
See also <a class="link" href="GtkWidget.html#gtk-widget-modify-style" title="gtk_widget_modify_style ()"><code class="function">gtk_widget_modify_style()</code></a>.</p>
<div class="refsect3">
<a name="gtk-widget-modify-cursor.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>primary</p></td>
<td class="parameter_description"><p>the color to use for primary cursor (does not
need to be allocated), or <code class="literal">NULL</code> to undo the effect of previous
calls to of <a class="link" href="GtkWidget.html#gtk-widget-modify-cursor" title="gtk_widget_modify_cursor ()"><code class="function">gtk_widget_modify_cursor()</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>secondary</p></td>
<td class="parameter_description"><p>the color to use for secondary cursor (does
not need to be allocated), or <code class="literal">NULL</code> to undo the effect of
previous calls to of <a class="link" href="GtkWidget.html#gtk-widget-modify-cursor" title="gtk_widget_modify_cursor ()"><code class="function">gtk_widget_modify_cursor()</code></a>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 2.12</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-create-pango-context"></a><h3>gtk_widget_create_pango_context ()</h3>
<pre class="programlisting"><span class="returnvalue">PangoContext</span> *
gtk_widget_create_pango_context (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Creates a new <span class="type">PangoContext</span> with the appropriate font map,
font options, font description, and base direction for drawing
text for this widget. See also <a class="link" href="GtkWidget.html#gtk-widget-get-pango-context" title="gtk_widget_get_pango_context ()"><code class="function">gtk_widget_get_pango_context()</code></a>.</p>
<div class="refsect3">
<a name="gtk-widget-create-pango-context.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-create-pango-context.returns"></a><h4>Returns</h4>
<p>the new <span class="type">PangoContext</span>. </p>
<p><span class="annotation">[<acronym title="The caller owns the data, and is responsible for free it."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-pango-context"></a><h3>gtk_widget_get_pango_context ()</h3>
<pre class="programlisting"><span class="returnvalue">PangoContext</span> *
gtk_widget_get_pango_context (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Gets a <span class="type">PangoContext</span> with the appropriate font map, font description,
and base direction for this widget. Unlike the context returned
by <a class="link" href="GtkWidget.html#gtk-widget-create-pango-context" title="gtk_widget_create_pango_context ()"><code class="function">gtk_widget_create_pango_context()</code></a>, this context is owned by
the widget (it can be used until the screen for the widget changes
or the widget is removed from its toplevel), and will be updated to
match any changes to the widget’s attributes. This can be tracked
by using the <a class="link" href="GtkWidget.html#GtkWidget-screen-changed" title="The “screen-changed” signal"><span class="type">“screen-changed”</span></a> signal on the widget.</p>
<div class="refsect3">
<a name="gtk-widget-get-pango-context.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-pango-context.returns"></a><h4>Returns</h4>
<p>the <span class="type">PangoContext</span> for the widget. </p>
<p><span class="annotation">[<acronym title="The data is owned by the callee, which is responsible of freeing it."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-font-options"></a><h3>gtk_widget_set_font_options ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_set_font_options (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                             <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/cairo/cairo-cairo-font-options-t.html#cairo-font-options-t"><span class="type">cairo_font_options_t</span></a> *options</code></em>);</pre>
<p>Sets the <a href="/usr/share/gtk-doc/html/cairo/cairo-cairo-font-options-t.html#cairo-font-options-t"><span class="type">cairo_font_options_t</span></a> used for Pango rendering in this widget.
When not set, the default font options for the <span class="type">GdkScreen</span> will be used.</p>
<div class="refsect3">
<a name="gtk-widget-set-font-options.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>options</p></td>
<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/cairo/cairo-cairo-font-options-t.html#cairo-font-options-t"><span class="type">cairo_font_options_t</span></a>, or <code class="literal">NULL</code> to unset any
previously set default font options. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-18.html#api-index-3.18">3.18</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-font-options"></a><h3>gtk_widget_get_font_options ()</h3>
<pre class="programlisting">const <a href="/usr/share/gtk-doc/html/cairo/cairo-cairo-font-options-t.html#cairo-font-options-t"><span class="returnvalue">cairo_font_options_t</span></a> *
gtk_widget_get_font_options (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Returns the <a href="/usr/share/gtk-doc/html/cairo/cairo-cairo-font-options-t.html#cairo-font-options-t"><span class="type">cairo_font_options_t</span></a> used for Pango rendering. When not set,
the defaults font options for the <span class="type">GdkScreen</span> will be used.</p>
<div class="refsect3">
<a name="gtk-widget-get-font-options.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-font-options.returns"></a><h4>Returns</h4>
<p>the <a href="/usr/share/gtk-doc/html/cairo/cairo-cairo-font-options-t.html#cairo-font-options-t"><span class="type">cairo_font_options_t</span></a> or <code class="literal">NULL</code> if not set. </p>
<p><span class="annotation">[<acronym title="The data is owned by the callee, which is responsible of freeing it."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-18.html#api-index-3.18">3.18</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-font-map"></a><h3>gtk_widget_set_font_map ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_set_font_map (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                         <em class="parameter"><code><span class="type">PangoFontMap</span> *font_map</code></em>);</pre>
<p>Sets the font map to use for Pango rendering. When not set, the widget
will inherit the font map from its parent.</p>
<div class="refsect3">
<a name="gtk-widget-set-font-map.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>font_map</p></td>
<td class="parameter_description"><p>a <span class="type">PangoFontMap</span>, or <code class="literal">NULL</code> to unset any previously
set font map. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-18.html#api-index-3.18">3.18</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-font-map"></a><h3>gtk_widget_get_font_map ()</h3>
<pre class="programlisting"><span class="returnvalue">PangoFontMap</span> *
gtk_widget_get_font_map (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Gets the font map that has been set with <a class="link" href="GtkWidget.html#gtk-widget-set-font-map" title="gtk_widget_set_font_map ()"><code class="function">gtk_widget_set_font_map()</code></a>.</p>
<div class="refsect3">
<a name="gtk-widget-get-font-map.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-font-map.returns"></a><h4>Returns</h4>
<p>A <span class="type">PangoFontMap</span>, or <code class="literal">NULL</code>. </p>
<p><span class="annotation">[<acronym title="The data is owned by the callee, which is responsible of freeing it."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-18.html#api-index-3.18">3.18</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-create-pango-layout"></a><h3>gtk_widget_create_pango_layout ()</h3>
<pre class="programlisting"><span class="returnvalue">PangoLayout</span> *
gtk_widget_create_pango_layout (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                <em class="parameter"><code>const <span class="type">gchar</span> *text</code></em>);</pre>
<p>Creates a new <span class="type">PangoLayout</span> with the appropriate font map,
font description, and base direction for drawing text for
this widget.</p>
<p>If you keep a <span class="type">PangoLayout</span> created in this way around, you need
to re-create it when the widget <span class="type">PangoContext</span> is replaced.
This can be tracked by using the <a class="link" href="GtkWidget.html#GtkWidget-screen-changed" title="The “screen-changed” signal"><span class="type">“screen-changed”</span></a> signal
on the widget.</p>
<div class="refsect3">
<a name="gtk-widget-create-pango-layout.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>text</p></td>
<td class="parameter_description"><p>text to set on the layout (can be <code class="literal">NULL</code>). </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-create-pango-layout.returns"></a><h4>Returns</h4>
<p>the new <span class="type">PangoLayout</span>. </p>
<p><span class="annotation">[<acronym title="The caller owns the data, and is responsible for free it."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-render-icon"></a><h3>gtk_widget_render_icon ()</h3>
<pre class="programlisting"><span class="returnvalue">GdkPixbuf</span> *
gtk_widget_render_icon (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                        <em class="parameter"><code>const <span class="type">gchar</span> *stock_id</code></em>,
                        <em class="parameter"><code><a class="link" href="gtk3-Themeable-Stock-Images.html#GtkIconSize" title="enum GtkIconSize"><span class="type">GtkIconSize</span></a> size</code></em>,
                        <em class="parameter"><code>const <span class="type">gchar</span> *detail</code></em>);</pre>
<div class="warning">
<p><code class="literal">gtk_widget_render_icon</code> has been deprecated since version 3.0 and should not be used in newly-written code.</p>
<p>Use <a class="link" href="GtkWidget.html#gtk-widget-render-icon-pixbuf" title="gtk_widget_render_icon_pixbuf ()"><code class="function">gtk_widget_render_icon_pixbuf()</code></a> instead.</p>
</div>
<p>A convenience function that uses the theme settings for <em class="parameter"><code>widget</code></em>

to look up <em class="parameter"><code>stock_id</code></em>
 and render it to a pixbuf. <em class="parameter"><code>stock_id</code></em>
 should
be a stock icon ID such as <a class="link" href="gtk3-Stock-Items.html#GTK-STOCK-OPEN:CAPS" title="GTK_STOCK_OPEN"><span class="type">GTK_STOCK_OPEN</span></a> or <a class="link" href="gtk3-Stock-Items.html#GTK-STOCK-OK:CAPS" title="GTK_STOCK_OK"><span class="type">GTK_STOCK_OK</span></a>. <em class="parameter"><code>size</code></em>

should be a size such as <a class="link" href="gtk3-Themeable-Stock-Images.html#GTK-ICON-SIZE-MENU:CAPS"><span class="type">GTK_ICON_SIZE_MENU</span></a>. <em class="parameter"><code>detail</code></em>
 should be a
string that identifies the widget or code doing the rendering, so
that theme engines can special-case rendering for that widget or
code.</p>
<p>The pixels in the returned <span class="type">GdkPixbuf</span> are shared with the rest of
the application and should not be modified. The pixbuf should be
freed after use with <code class="function">g_object_unref()</code>.</p>
<div class="refsect3">
<a name="gtk-widget-render-icon.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>stock_id</p></td>
<td class="parameter_description"><p>a stock ID</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>size</p></td>
<td class="parameter_description"><p>a stock size (<a class="link" href="gtk3-Themeable-Stock-Images.html#GtkIconSize" title="enum GtkIconSize"><span class="type">GtkIconSize</span></a>). A size of <code class="literal">(GtkIconSize)-1</code>
means render at the size of the source and don’t scale (if there are
multiple source sizes, GTK+ picks one of the available sizes). </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> int]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>detail</p></td>
<td class="parameter_description"><p>render detail to pass to theme engine. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-render-icon.returns"></a><h4>Returns</h4>
<p>a new pixbuf, or <code class="literal">NULL</code> if the
stock ID wasn’t known. </p>
<p><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>][<acronym title="The caller owns the data, and is responsible for free it."><span class="acronym">transfer full</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-render-icon-pixbuf"></a><h3>gtk_widget_render_icon_pixbuf ()</h3>
<pre class="programlisting"><span class="returnvalue">GdkPixbuf</span> *
gtk_widget_render_icon_pixbuf (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                               <em class="parameter"><code>const <span class="type">gchar</span> *stock_id</code></em>,
                               <em class="parameter"><code><a class="link" href="gtk3-Themeable-Stock-Images.html#GtkIconSize" title="enum GtkIconSize"><span class="type">GtkIconSize</span></a> size</code></em>);</pre>
<div class="warning">
<p><code class="literal">gtk_widget_render_icon_pixbuf</code> has been deprecated since version 3.10 and should not be used in newly-written code.</p>
<p>Use <a class="link" href="GtkIconTheme.html#gtk-icon-theme-load-icon" title="gtk_icon_theme_load_icon ()"><code class="function">gtk_icon_theme_load_icon()</code></a> instead.</p>
</div>
<p>A convenience function that uses the theme engine and style
settings for <em class="parameter"><code>widget</code></em>
 to look up <em class="parameter"><code>stock_id</code></em>
 and render it to
a pixbuf. <em class="parameter"><code>stock_id</code></em>
 should be a stock icon ID such as
<a class="link" href="gtk3-Stock-Items.html#GTK-STOCK-OPEN:CAPS" title="GTK_STOCK_OPEN"><span class="type">GTK_STOCK_OPEN</span></a> or <a class="link" href="gtk3-Stock-Items.html#GTK-STOCK-OK:CAPS" title="GTK_STOCK_OK"><span class="type">GTK_STOCK_OK</span></a>. <em class="parameter"><code>size</code></em>
 should be a size
such as <a class="link" href="gtk3-Themeable-Stock-Images.html#GTK-ICON-SIZE-MENU:CAPS"><span class="type">GTK_ICON_SIZE_MENU</span></a>.</p>
<p>The pixels in the returned <span class="type">GdkPixbuf</span> are shared with the rest of
the application and should not be modified. The pixbuf should be freed
after use with <code class="function">g_object_unref()</code>.</p>
<div class="refsect3">
<a name="gtk-widget-render-icon-pixbuf.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>stock_id</p></td>
<td class="parameter_description"><p>a stock ID</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>size</p></td>
<td class="parameter_description"><p>a stock size (<a class="link" href="gtk3-Themeable-Stock-Images.html#GtkIconSize" title="enum GtkIconSize"><span class="type">GtkIconSize</span></a>). A size of <code class="literal">(GtkIconSize)-1</code>
means render at the size of the source and don’t scale (if there are
multiple source sizes, GTK+ picks one of the available sizes). </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> int]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-render-icon-pixbuf.returns"></a><h4>Returns</h4>
<p>a new pixbuf, or <code class="literal">NULL</code> if the
stock ID wasn’t known. </p>
<p><span class="annotation">[<acronym title="The caller owns the data, and is responsible for free it."><span class="acronym">transfer full</span></acronym>][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-pop-composite-child"></a><h3>gtk_widget_pop_composite_child ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_pop_composite_child (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<div class="warning">
<p><code class="literal">gtk_widget_pop_composite_child</code> has been deprecated since version 3.10 and should not be used in newly-written code.</p>
<p>Use <a class="link" href="GtkWidget.html#gtk-widget-class-set-template" title="gtk_widget_class_set_template ()"><code class="function">gtk_widget_class_set_template()</code></a>, or don’t use this API at all.</p>
</div>
<p>Cancels the effect of a previous call to <a class="link" href="GtkWidget.html#gtk-widget-push-composite-child" title="gtk_widget_push_composite_child ()"><code class="function">gtk_widget_push_composite_child()</code></a>.</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-push-composite-child"></a><h3>gtk_widget_push_composite_child ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_push_composite_child (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<div class="warning">
<p><code class="literal">gtk_widget_push_composite_child</code> has been deprecated since version 3.10 and should not be used in newly-written code.</p>
<p>This API never really worked well and was mostly unused, now
we have a more complete mechanism for composite children, see <a class="link" href="GtkWidget.html#gtk-widget-class-set-template" title="gtk_widget_class_set_template ()"><code class="function">gtk_widget_class_set_template()</code></a>.</p>
</div>
<p>Makes all newly-created widgets as composite children until
the corresponding <a class="link" href="GtkWidget.html#gtk-widget-pop-composite-child" title="gtk_widget_pop_composite_child ()"><code class="function">gtk_widget_pop_composite_child()</code></a> call.</p>
<p>A composite child is a child that’s an implementation detail of the
container it’s inside and should not be visible to people using the
container. Composite children aren’t treated differently by GTK+ (but
see <a class="link" href="GtkContainer.html#gtk-container-foreach" title="gtk_container_foreach ()"><code class="function">gtk_container_foreach()</code></a> vs. <a class="link" href="GtkContainer.html#gtk-container-forall" title="gtk_container_forall ()"><code class="function">gtk_container_forall()</code></a>), but e.g. GUI
builders might want to treat them in a different way.</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-queue-draw-area"></a><h3>gtk_widget_queue_draw_area ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_queue_draw_area (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                            <em class="parameter"><code><span class="type">gint</span> x</code></em>,
                            <em class="parameter"><code><span class="type">gint</span> y</code></em>,
                            <em class="parameter"><code><span class="type">gint</span> width</code></em>,
                            <em class="parameter"><code><span class="type">gint</span> height</code></em>);</pre>
<p>Convenience function that calls <a class="link" href="GtkWidget.html#gtk-widget-queue-draw-region" title="gtk_widget_queue_draw_region ()"><code class="function">gtk_widget_queue_draw_region()</code></a> on
the region created from the given coordinates.</p>
<p>The region here is specified in widget coordinates.
Widget coordinates are a bit odd; for historical reasons, they are
defined as <em class="parameter"><code>widget-&gt;window</code></em>
 coordinates for widgets that return <code class="literal">TRUE</code> for
<a class="link" href="GtkWidget.html#gtk-widget-get-has-window" title="gtk_widget_get_has_window ()"><code class="function">gtk_widget_get_has_window()</code></a>, and are relative to <em class="parameter"><code>widget-&gt;allocation.x</code></em>
,
<em class="parameter"><code>widget-&gt;allocation.y</code></em>
 otherwise.</p>
<p><em class="parameter"><code>width</code></em>
 or <em class="parameter"><code>height</code></em>
 may be 0, in this case this function does
nothing. Negative values for <em class="parameter"><code>width</code></em>
 and <em class="parameter"><code>height</code></em>
 are not allowed.</p>
<div class="refsect3">
<a name="gtk-widget-queue-draw-area.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>x</p></td>
<td class="parameter_description"><p>x coordinate of upper-left corner of rectangle to redraw</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>y</p></td>
<td class="parameter_description"><p>y coordinate of upper-left corner of rectangle to redraw</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>width</p></td>
<td class="parameter_description"><p>width of region to draw</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>height</p></td>
<td class="parameter_description"><p>height of region to draw</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-queue-draw-region"></a><h3>gtk_widget_queue_draw_region ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_queue_draw_region (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                              <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/cairo/cairo-Regions.html#cairo-region-t"><span class="type">cairo_region_t</span></a> *region</code></em>);</pre>
<p>Invalidates the area of <em class="parameter"><code>widget</code></em>
 defined by <em class="parameter"><code>region</code></em>
 by calling
<code class="function">gdk_window_invalidate_region()</code> on the widget’s window and all its
child windows. Once the main loop becomes idle (after the current
batch of events has been processed, roughly), the window will
receive expose events for the union of all regions that have been
invalidated.</p>
<p>Normally you would only use this function in widget
implementations. You might also use it to schedule a redraw of a
<a class="link" href="GtkDrawingArea.html" title="GtkDrawingArea"><span class="type">GtkDrawingArea</span></a> or some portion thereof.</p>
<div class="refsect3">
<a name="gtk-widget-queue-draw-region.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>region</p></td>
<td class="parameter_description"><p>region to draw</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-app-paintable"></a><h3>gtk_widget_set_app_paintable ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_set_app_paintable (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                              <em class="parameter"><code><span class="type">gboolean</span> app_paintable</code></em>);</pre>
<p>Sets whether the application intends to draw on the widget in
an <a class="link" href="GtkWidget.html#GtkWidget-draw" title="The “draw” signal"><span class="type">“draw”</span></a> handler.</p>
<p>This is a hint to the widget and does not affect the behavior of
the GTK+ core; many widgets ignore this flag entirely. For widgets
that do pay attention to the flag, such as <a class="link" href="GtkEventBox.html" title="GtkEventBox"><span class="type">GtkEventBox</span></a> and <a class="link" href="GtkWindow.html" title="GtkWindow"><span class="type">GtkWindow</span></a>,
the effect is to suppress default themed drawing of the widget's
background. (Children of the widget will still be drawn.) The application
is then entirely responsible for drawing the widget background.</p>
<p>Note that the background is still drawn when the widget is mapped.</p>
<div class="refsect3">
<a name="gtk-widget-set-app-paintable.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>app_paintable</p></td>
<td class="parameter_description"><p><code class="literal">TRUE</code> if the application will paint on the widget</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-double-buffered"></a><h3>gtk_widget_set_double_buffered ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_set_double_buffered (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                <em class="parameter"><code><span class="type">gboolean</span> double_buffered</code></em>);</pre>
<div class="warning">
<p><code class="literal">gtk_widget_set_double_buffered</code> has been deprecated since version 3.14 and should not be used in newly-written code.</p>
<p>This function does not work under non-X11 backends or with
non-native windows.
It should not be used in newly written code.</p>
</div>
<p>Widgets are double buffered by default; you can use this function
to turn off the buffering. “Double buffered” simply means that
<code class="function">gdk_window_begin_draw_frame()</code> and <code class="function">gdk_window_end_draw_frame()</code> are called
automatically around expose events sent to the
widget. <code class="function">gdk_window_begin_draw_frame()</code> diverts all drawing to a widget's
window to an offscreen buffer, and <code class="function">gdk_window_end_draw_frame()</code> draws the
buffer to the screen. The result is that users see the window
update in one smooth step, and don’t see individual graphics
primitives being rendered.</p>
<p>In very simple terms, double buffered widgets don’t flicker,
so you would only use this function to turn off double buffering
if you had special needs and really knew what you were doing.</p>
<p>Note: if you turn off double-buffering, you have to handle
expose events, since even the clearing to the background color or
pixmap will not happen automatically (as it is done in
<code class="function">gdk_window_begin_draw_frame()</code>).</p>
<p>In 3.10 GTK and GDK have been restructured for translucent drawing. Since
then expose events for double-buffered widgets are culled into a single
event to the toplevel GDK window. If you now unset double buffering, you
will cause a separate rendering pass for every widget. This will likely
cause rendering problems - in particular related to stacking - and usually
increases rendering times significantly.</p>
<div class="refsect3">
<a name="gtk-widget-set-double-buffered.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>double_buffered</p></td>
<td class="parameter_description"><p><code class="literal">TRUE</code> to double-buffer a widget</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-redraw-on-allocate"></a><h3>gtk_widget_set_redraw_on_allocate ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_set_redraw_on_allocate (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                   <em class="parameter"><code><span class="type">gboolean</span> redraw_on_allocate</code></em>);</pre>
<p>Sets whether the entire widget is queued for drawing when its size
allocation changes. By default, this setting is <code class="literal">TRUE</code> and
the entire widget is redrawn on every size change. If your widget
leaves the upper left unchanged when made bigger, turning this
setting off will improve performance.</p>
<p>Note that for widgets where <a class="link" href="GtkWidget.html#gtk-widget-get-has-window" title="gtk_widget_get_has_window ()"><code class="function">gtk_widget_get_has_window()</code></a> is <code class="literal">FALSE</code>
setting this flag to <code class="literal">FALSE</code> turns off all allocation on resizing:
the widget will not even redraw if its position changes; this is to
allow containers that don’t draw anything to avoid excess
invalidations. If you set this flag on a widget with no window that
does draw on <em class="parameter"><code>widget-&gt;window</code></em>
, you are
responsible for invalidating both the old and new allocation of the
widget when the widget is moved and responsible for invalidating
regions newly when the widget increases size.</p>
<div class="refsect3">
<a name="gtk-widget-set-redraw-on-allocate.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>redraw_on_allocate</p></td>
<td class="parameter_description"><p>if <code class="literal">TRUE</code>, the entire widget will be redrawn
when it is allocated to a new size. Otherwise, only the
new portion of the widget will be redrawn.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-composite-name"></a><h3>gtk_widget_set_composite_name ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_set_composite_name (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                               <em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>);</pre>
<div class="warning">
<p><code class="literal">gtk_widget_set_composite_name</code> has been deprecated since version 3.10 and should not be used in newly-written code.</p>
<p>Use <a class="link" href="GtkWidget.html#gtk-widget-class-set-template" title="gtk_widget_class_set_template ()"><code class="function">gtk_widget_class_set_template()</code></a>, or don’t use this API at all.</p>
</div>
<p>Sets a widgets composite name. The widget must be
a composite child of its parent; see <a class="link" href="GtkWidget.html#gtk-widget-push-composite-child" title="gtk_widget_push_composite_child ()"><code class="function">gtk_widget_push_composite_child()</code></a>.</p>
<div class="refsect3">
<a name="gtk-widget-set-composite-name.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>name</p></td>
<td class="parameter_description"><p>the name to set</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-mnemonic-activate"></a><h3>gtk_widget_mnemonic_activate ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_widget_mnemonic_activate (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                              <em class="parameter"><code><span class="type">gboolean</span> group_cycling</code></em>);</pre>
<p>Emits the <a class="link" href="GtkWidget.html#GtkWidget-mnemonic-activate" title="The “mnemonic-activate” signal"><span class="type">“mnemonic-activate”</span></a> signal.</p>
<div class="refsect3">
<a name="gtk-widget-mnemonic-activate.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>group_cycling</p></td>
<td class="parameter_description"><p><code class="literal">TRUE</code> if there are other widgets with the same mnemonic</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-mnemonic-activate.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if the signal has been handled</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-class-install-style-property"></a><h3>gtk_widget_class_install_style_property ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_class_install_style_property
                               (<em class="parameter"><code><a class="link" href="GtkWidget.html#GtkWidgetClass" title="struct GtkWidgetClass"><span class="type">GtkWidgetClass</span></a> *klass</code></em>,
                                <em class="parameter"><code><span class="type">GParamSpec</span> *pspec</code></em>);</pre>
<p>Installs a style property on a widget class. The parser for the
style property is determined by the value type of <em class="parameter"><code>pspec</code></em>
.</p>
<div class="refsect3">
<a name="gtk-widget-class-install-style-property.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>klass</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html#GtkWidgetClass" title="struct GtkWidgetClass"><span class="type">GtkWidgetClass</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>pspec</p></td>
<td class="parameter_description"><p>the <span class="type">GParamSpec</span> for the property</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-class-install-style-property-parser"></a><h3>gtk_widget_class_install_style_property_parser ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_class_install_style_property_parser
                               (<em class="parameter"><code><a class="link" href="GtkWidget.html#GtkWidgetClass" title="struct GtkWidgetClass"><span class="type">GtkWidgetClass</span></a> *klass</code></em>,
                                <em class="parameter"><code><span class="type">GParamSpec</span> *pspec</code></em>,
                                <em class="parameter"><code><a class="link" href="GtkStyle.html#GtkRcPropertyParser" title="GtkRcPropertyParser ()"><span class="type">GtkRcPropertyParser</span></a> parser</code></em>);</pre>
<p>Installs a style property on a widget class.</p>
<p><span class="annotation">[<acronym title="Exposed in C code, not necessarily available in other languages."><span class="acronym">skip</span></acronym>]</span></p>
<div class="refsect3">
<a name="gtk-widget-class-install-style-property-parser.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>klass</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html#GtkWidgetClass" title="struct GtkWidgetClass"><span class="type">GtkWidgetClass</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>pspec</p></td>
<td class="parameter_description"><p>the <span class="type">GParamSpec</span> for the style property</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>parser</p></td>
<td class="parameter_description"><p>the parser for the style property</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-class-find-style-property"></a><h3>gtk_widget_class_find_style_property ()</h3>
<pre class="programlisting"><span class="returnvalue">GParamSpec</span> *
gtk_widget_class_find_style_property (<em class="parameter"><code><a class="link" href="GtkWidget.html#GtkWidgetClass" title="struct GtkWidgetClass"><span class="type">GtkWidgetClass</span></a> *klass</code></em>,
                                      <em class="parameter"><code>const <span class="type">gchar</span> *property_name</code></em>);</pre>
<p>Finds a style property of a widget class by name.</p>
<div class="refsect3">
<a name="gtk-widget-class-find-style-property.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>klass</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html#GtkWidgetClass" title="struct GtkWidgetClass"><span class="type">GtkWidgetClass</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>property_name</p></td>
<td class="parameter_description"><p>the name of the style property to find</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-class-find-style-property.returns"></a><h4>Returns</h4>
<p>the <span class="type">GParamSpec</span> of the style property or
<code class="literal">NULL</code> if <em class="parameter"><code>class</code></em>
has no style property with that name. </p>
<p><span class="annotation">[<acronym title="The data is owned by the callee, which is responsible of freeing it."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
<p class="since">Since: 2.2</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-class-list-style-properties"></a><h3>gtk_widget_class_list_style_properties ()</h3>
<pre class="programlisting"><span class="returnvalue">GParamSpec</span> **
gtk_widget_class_list_style_properties
                               (<em class="parameter"><code><a class="link" href="GtkWidget.html#GtkWidgetClass" title="struct GtkWidgetClass"><span class="type">GtkWidgetClass</span></a> *klass</code></em>,
                                <em class="parameter"><code><span class="type">guint</span> *n_properties</code></em>);</pre>
<p>Returns all style properties of a widget class.</p>
<div class="refsect3">
<a name="gtk-widget-class-list-style-properties.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>klass</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html#GtkWidgetClass" title="struct GtkWidgetClass"><span class="type">GtkWidgetClass</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>n_properties</p></td>
<td class="parameter_description"><p>location to return the number of style properties found. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-class-list-style-properties.returns"></a><h4>Returns</h4>
<p>a
newly allocated array of <span class="type">GParamSpec</span>*. The array must be
freed with <code class="function">g_free()</code>. </p>
<p><span class="annotation">[<acronym title="Parameter points to an array of items."><span class="acronym">array</span></acronym> length=n_properties][<acronym title="The caller owns the data container, but not the data inside it."><span class="acronym">transfer container</span></acronym>]</span></p>
</div>
<p class="since">Since: 2.2</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-region-intersect"></a><h3>gtk_widget_region_intersect ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/cairo/cairo-Regions.html#cairo-region-t"><span class="returnvalue">cairo_region_t</span></a> *
gtk_widget_region_intersect (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                             <em class="parameter"><code>const <a href="/usr/share/gtk-doc/html/cairo/cairo-Regions.html#cairo-region-t"><span class="type">cairo_region_t</span></a> *region</code></em>);</pre>
<div class="warning">
<p><code class="literal">gtk_widget_region_intersect</code> has been deprecated since version 3.14 and should not be used in newly-written code.</p>
<p>Use <a class="link" href="GtkWidget.html#gtk-widget-get-allocation" title="gtk_widget_get_allocation ()"><code class="function">gtk_widget_get_allocation()</code></a> and
    <a href="/usr/share/gtk-doc/html/cairo/cairo-Regions.html#cairo-region-intersect-rectangle"><code class="function">cairo_region_intersect_rectangle()</code></a> to get the same behavior.</p>
</div>
<p>Computes the intersection of a <em class="parameter"><code>widget</code></em>
’s area and <em class="parameter"><code>region</code></em>
, returning
the intersection. The result may be empty, use <a href="/usr/share/gtk-doc/html/cairo/cairo-Regions.html#cairo-region-is-empty"><code class="function">cairo_region_is_empty()</code></a> to
check.</p>
<div class="refsect3">
<a name="gtk-widget-region-intersect.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>region</p></td>
<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/cairo/cairo-Regions.html#cairo-region-t"><span class="type">cairo_region_t</span></a>, in the same coordinate system as
<em class="parameter"><code>widget-&gt;allocation</code></em>
. That is, relative to <em class="parameter"><code>widget-&gt;window</code></em>
for widgets which return <code class="literal">FALSE</code> from <a class="link" href="GtkWidget.html#gtk-widget-get-has-window" title="gtk_widget_get_has_window ()"><code class="function">gtk_widget_get_has_window()</code></a>;
relative to the parent window of <em class="parameter"><code>widget-&gt;window</code></em>
otherwise.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-region-intersect.returns"></a><h4>Returns</h4>
<p> A newly allocated region holding the intersection of <em class="parameter"><code>widget</code></em>
and <em class="parameter"><code>region</code></em>
.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-send-expose"></a><h3>gtk_widget_send_expose ()</h3>
<pre class="programlisting"><span class="returnvalue">gint</span>
gtk_widget_send_expose (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                        <em class="parameter"><code><span class="type">GdkEvent</span> *event</code></em>);</pre>
<div class="warning">
<p><code class="literal">gtk_widget_send_expose</code> has been deprecated since version 3.22 and should not be used in newly-written code.</p>
<p>Application and widget code should not handle
  expose events directly; invalidation should use the <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a>
  API, and drawing should only happen inside <a class="link" href="GtkWidget.html#GtkWidget-draw" title="The “draw” signal"><span class="type">“draw”</span></a>
  implementations</p>
</div>
<p>Very rarely-used function. This function is used to emit
an expose event on a widget. This function is not normally used
directly. The only time it is used is when propagating an expose
event to a windowless child widget (<a class="link" href="GtkWidget.html#gtk-widget-get-has-window" title="gtk_widget_get_has_window ()"><code class="function">gtk_widget_get_has_window()</code></a> is <code class="literal">FALSE</code>),
and that is normally done using <a class="link" href="GtkContainer.html#gtk-container-propagate-draw" title="gtk_container_propagate_draw ()"><code class="function">gtk_container_propagate_draw()</code></a>.</p>
<p>If you want to force an area of a window to be redrawn,
use <code class="function">gdk_window_invalidate_rect()</code> or <code class="function">gdk_window_invalidate_region()</code>.
To cause the redraw to be done immediately, follow that call
with a call to <code class="function">gdk_window_process_updates()</code>.</p>
<div class="refsect3">
<a name="gtk-widget-send-expose.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>a expose <span class="type">GdkEvent</span></p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-send-expose.returns"></a><h4>Returns</h4>
<p> return from the event signal emission (<code class="literal">TRUE</code> if
the event was handled)</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-send-focus-change"></a><h3>gtk_widget_send_focus_change ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_widget_send_focus_change (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                              <em class="parameter"><code><span class="type">GdkEvent</span> *event</code></em>);</pre>
<p>Sends the focus change <em class="parameter"><code>event</code></em>
 to <em class="parameter"><code>widget</code></em>
</p>
<p>This function is not meant to be used by applications. The only time it
should be used is when it is necessary for a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> to assign focus
to a widget that is semantically owned by the first widget even though
it’s not a direct child - for instance, a search entry in a floating
window similar to the quick search in <a class="link" href="GtkTreeView.html" title="GtkTreeView"><span class="type">GtkTreeView</span></a>.</p>
<p>An example of its usage is:</p>
<div class="informalexample">
  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
    <tbody>
      <tr>
        <td class="listing_lines" align="right"><pre>1
2
3
4
5
6
7
8
9
10
11</pre></td>
        <td class="listing_code"><pre class="programlisting"><span class="n">GdkEvent</span> <span class="o">*</span><span class="n">fevent</span> <span class="o">=</span> <span class="n">gdk_event_new</span> <span class="p">(</span><span class="n">GDK_FOCUS_CHANGE</span><span class="p">);</span>

<span class="n">fevent</span><span class="o">-&gt;</span><span class="n">focus_change</span><span class="p">.</span><span class="n">type</span> <span class="o">=</span> <span class="n">GDK_FOCUS_CHANGE</span><span class="p">;</span>
<span class="n">fevent</span><span class="o">-&gt;</span><span class="n">focus_change</span><span class="p">.</span><span class="n">in</span> <span class="o">=</span> <span class="n">TRUE</span><span class="p">;</span>
<span class="n">fevent</span><span class="o">-&gt;</span><span class="n">focus_change</span><span class="p">.</span><span class="n">window</span> <span class="o">=</span> <span class="n">_gtk_widget_get_window</span> <span class="p">(</span><span class="n">widget</span><span class="p">);</span>
<span class="k">if</span> <span class="p">(</span><span class="n">fevent</span><span class="o">-&gt;</span><span class="n">focus_change</span><span class="p">.</span><span class="n">window</span> <span class="o">!=</span> <span class="nb">NULL</span><span class="p">)</span>
  <span class="n">g_object_ref</span> <span class="p">(</span><span class="n">fevent</span><span class="o">-&gt;</span><span class="n">focus_change</span><span class="p">.</span><span class="n">window</span><span class="p">);</span>

<span class="n">gtk_widget_send_focus_change</span> <span class="p">(</span><span class="n">widget</span><span class="p">,</span> <span class="n">fevent</span><span class="p">);</span>

<span class="n">gdk_event_free</span> <span class="p">(</span><span class="n">event</span><span class="p">);</span></pre></td>
      </tr>
    </tbody>
  </table>
</div>

<p></p>
<div class="refsect3">
<a name="gtk-widget-send-focus-change.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>a <span class="type">GdkEvent</span> of type GDK_FOCUS_CHANGE</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-send-focus-change.returns"></a><h4>Returns</h4>
<p> the return value from the event signal emission: <code class="literal">TRUE</code>
if the event was handled, and <code class="literal">FALSE</code> otherwise</p>
</div>
<p class="since">Since: 2.20</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-style-get"></a><h3>gtk_widget_style_get ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_style_get (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                      <em class="parameter"><code>const <span class="type">gchar</span> *first_property_name</code></em>,
                      <em class="parameter"><code>...</code></em>);</pre>
<p>Gets the values of a multiple style properties of <em class="parameter"><code>widget</code></em>
.</p>
<div class="refsect3">
<a name="gtk-widget-style-get.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>first_property_name</p></td>
<td class="parameter_description"><p>the name of the first property to get</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>...</p></td>
<td class="parameter_description"><p>pairs of property names and locations to return the
property values, starting with the location for
<em class="parameter"><code>first_property_name</code></em>
, terminated by <code class="literal">NULL</code>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-style-get-property"></a><h3>gtk_widget_style_get_property ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_style_get_property (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                               <em class="parameter"><code>const <span class="type">gchar</span> *property_name</code></em>,
                               <em class="parameter"><code><span class="type">GValue</span> *value</code></em>);</pre>
<p>Gets the value of a style property of <em class="parameter"><code>widget</code></em>
.</p>
<div class="refsect3">
<a name="gtk-widget-style-get-property.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>property_name</p></td>
<td class="parameter_description"><p>the name of a style property</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>value</p></td>
<td class="parameter_description"><p>location to return the property value</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-style-get-valist"></a><h3>gtk_widget_style_get_valist ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_style_get_valist (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                             <em class="parameter"><code>const <span class="type">gchar</span> *first_property_name</code></em>,
                             <em class="parameter"><code><span class="type">va_list</span> var_args</code></em>);</pre>
<p>Non-vararg variant of <a class="link" href="GtkWidget.html#gtk-widget-style-get" title="gtk_widget_style_get ()"><code class="function">gtk_widget_style_get()</code></a>. Used primarily by language
bindings.</p>
<div class="refsect3">
<a name="gtk-widget-style-get-valist.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>first_property_name</p></td>
<td class="parameter_description"><p>the name of the first property to get</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>var_args</p></td>
<td class="parameter_description"><p>a va_list of pairs of property names and
locations to return the property values, starting with the location
for <em class="parameter"><code>first_property_name</code></em>
.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-style-attach"></a><h3>gtk_widget_style_attach ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_style_attach (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<div class="warning">
<p><code class="literal">gtk_widget_style_attach</code> has been deprecated since version 3.0 and should not be used in newly-written code.</p>
<p>This step is unnecessary with <a class="link" href="GtkStyleContext.html" title="GtkStyleContext"><span class="type">GtkStyleContext</span></a>.</p>
</div>
<p>This function attaches the widget’s <a class="link" href="GtkStyle.html" title="GtkStyle"><span class="type">GtkStyle</span></a> to the widget's
<span class="type">GdkWindow</span>. It is a replacement for</p>
<div class="informalexample">
  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
    <tbody>
      <tr>
        <td class="listing_lines" align="right"><pre>1</pre></td>
        <td class="listing_code"><pre class="programlisting"><span class="n">widget</span><span class="o">-&gt;</span><span class="n">style</span> <span class="o">=</span> <span class="n">gtk_style_attach</span> <span class="p">(</span><span class="n">widget</span><span class="o">-&gt;</span><span class="n">style</span><span class="p">,</span> <span class="n">widget</span><span class="o">-&gt;</span><span class="n">window</span><span class="p">);</span></pre></td>
      </tr>
    </tbody>
  </table>
</div>

<p></p>
<p>and should only ever be called in a derived widget’s “realize”
implementation which does not chain up to its parent class'
“realize” implementation, because one of the parent classes
(finally <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a>) would attach the style itself.</p>
<div class="refsect3">
<a name="gtk-widget-style-attach.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<p class="since">Since: 2.20</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-class-set-accessible-type"></a><h3>gtk_widget_class_set_accessible_type ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_class_set_accessible_type (<em class="parameter"><code><a class="link" href="GtkWidget.html#GtkWidgetClass" title="struct GtkWidgetClass"><span class="type">GtkWidgetClass</span></a> *widget_class</code></em>,
                                      <em class="parameter"><code><span class="type">GType</span> type</code></em>);</pre>
<p>Sets the type to be used for creating accessibles for widgets of
<em class="parameter"><code>widget_class</code></em>
. The given <em class="parameter"><code>type</code></em>
 must be a subtype of the type used for
accessibles of the parent class.</p>
<p>This function should only be called from class init functions of widgets.</p>
<div class="refsect3">
<a name="gtk-widget-class-set-accessible-type.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget_class</p></td>
<td class="parameter_description"><p>class to set the accessible type for</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>type</p></td>
<td class="parameter_description"><p>The object type that implements the accessible for <em class="parameter"><code>widget_class</code></em>
</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-2.html#api-index-3.2">3.2</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-class-set-accessible-role"></a><h3>gtk_widget_class_set_accessible_role ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_class_set_accessible_role (<em class="parameter"><code><a class="link" href="GtkWidget.html#GtkWidgetClass" title="struct GtkWidgetClass"><span class="type">GtkWidgetClass</span></a> *widget_class</code></em>,
                                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/atk/AtkObject.html#AtkRole"><span class="type">AtkRole</span></a> role</code></em>);</pre>
<p>Sets the default <a href="/usr/share/gtk-doc/html/atk/AtkObject.html#AtkRole"><span class="type">AtkRole</span></a> to be set on accessibles created for
widgets of <em class="parameter"><code>widget_class</code></em>
. Accessibles may decide to not honor this
setting if their role reporting is more refined. Calls to 
<a class="link" href="GtkWidget.html#gtk-widget-class-set-accessible-type" title="gtk_widget_class_set_accessible_type ()"><code class="function">gtk_widget_class_set_accessible_type()</code></a> will reset this value.</p>
<p>In cases where you want more fine-grained control over the role of
accessibles created for <em class="parameter"><code>widget_class</code></em>
, you should provide your own
accessible type and use <a class="link" href="GtkWidget.html#gtk-widget-class-set-accessible-type" title="gtk_widget_class_set_accessible_type ()"><code class="function">gtk_widget_class_set_accessible_type()</code></a>
instead.</p>
<p>If <em class="parameter"><code>role</code></em>
 is <a href="/usr/share/gtk-doc/html/atk/AtkObject.html#ATK-ROLE-INVALID:CAPS"><span class="type">ATK_ROLE_INVALID</span></a>, the default role will not be changed
and the accessible’s default role will be used instead.</p>
<p>This function should only be called from class init functions of widgets.</p>
<div class="refsect3">
<a name="gtk-widget-class-set-accessible-role.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget_class</p></td>
<td class="parameter_description"><p>class to set the accessible role for</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>role</p></td>
<td class="parameter_description"><p>The role to use for accessibles created for <em class="parameter"><code>widget_class</code></em>
</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-2.html#api-index-3.2">3.2</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-accessible"></a><h3>gtk_widget_get_accessible ()</h3>
<pre class="programlisting"><a href="/usr/share/gtk-doc/html/atk/AtkObject.html#AtkObject-struct"><span class="returnvalue">AtkObject</span></a> *
gtk_widget_get_accessible (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Returns the accessible object that describes the widget to an
assistive technology.</p>
<p>If accessibility support is not available, this <a href="/usr/share/gtk-doc/html/atk/AtkObject.html#AtkObject-struct"><span class="type">AtkObject</span></a>
instance may be a no-op. Likewise, if no class-specific <a href="/usr/share/gtk-doc/html/atk/AtkObject.html#AtkObject-struct"><span class="type">AtkObject</span></a>
implementation is available for the widget instance in question,
it will inherit an <a href="/usr/share/gtk-doc/html/atk/AtkObject.html#AtkObject-struct"><span class="type">AtkObject</span></a> implementation from the first ancestor
class for which such an implementation is defined.</p>
<p>The documentation of the
<a class="ulink" href="http://developer.gnome.org/atk/stable/" target="_top">ATK</a>
library contains more information about accessible objects and their uses.</p>
<div class="refsect3">
<a name="gtk-widget-get-accessible.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-accessible.returns"></a><h4>Returns</h4>
<p>the <a href="/usr/share/gtk-doc/html/atk/AtkObject.html#AtkObject-struct"><span class="type">AtkObject</span></a> associated with <em class="parameter"><code>widget</code></em>
. </p>
<p><span class="annotation">[<acronym title="The data is owned by the callee, which is responsible of freeing it."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-child-focus"></a><h3>gtk_widget_child_focus ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_widget_child_focus (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                        <em class="parameter"><code><a class="link" href="gtk3-Standard-Enumerations.html#GtkDirectionType" title="enum GtkDirectionType"><span class="type">GtkDirectionType</span></a> direction</code></em>);</pre>
<p>This function is used by custom widget implementations; if you're
writing an app, you’d use <a class="link" href="GtkWidget.html#gtk-widget-grab-focus" title="gtk_widget_grab_focus ()"><code class="function">gtk_widget_grab_focus()</code></a> to move the focus
to a particular widget, and <a class="link" href="GtkContainer.html#gtk-container-set-focus-chain" title="gtk_container_set_focus_chain ()"><code class="function">gtk_container_set_focus_chain()</code></a> to
change the focus tab order. So you may want to investigate those
functions instead.</p>
<p>gtk_widget_child_focus() is called by containers as the user moves
around the window using keyboard shortcuts. <em class="parameter"><code>direction</code></em>
 indicates
what kind of motion is taking place (up, down, left, right, tab
forward, tab backward). <a class="link" href="GtkWidget.html#gtk-widget-child-focus" title="gtk_widget_child_focus ()"><code class="function">gtk_widget_child_focus()</code></a> emits the
<a class="link" href="GtkWidget.html#GtkWidget-focus" title="The “focus” signal"><span class="type">“focus”</span></a> signal; widgets override the default handler
for this signal in order to implement appropriate focus behavior.</p>
<p>The default ::focus handler for a widget should return <code class="literal">TRUE</code> if
moving in <em class="parameter"><code>direction</code></em>
 left the focus on a focusable location inside
that widget, and <code class="literal">FALSE</code> if moving in <em class="parameter"><code>direction</code></em>
 moved the focus
outside the widget. If returning <code class="literal">TRUE</code>, widgets normally
call <a class="link" href="GtkWidget.html#gtk-widget-grab-focus" title="gtk_widget_grab_focus ()"><code class="function">gtk_widget_grab_focus()</code></a> to place the focus accordingly;
if returning <code class="literal">FALSE</code>, they don’t modify the current focus location.</p>
<div class="refsect3">
<a name="gtk-widget-child-focus.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>direction</p></td>
<td class="parameter_description"><p>direction of focus movement</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-child-focus.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if focus ended up inside <em class="parameter"><code>widget</code></em>
</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-child-notify"></a><h3>gtk_widget_child_notify ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_child_notify (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                         <em class="parameter"><code>const <span class="type">gchar</span> *child_property</code></em>);</pre>
<p>Emits a <a class="link" href="GtkWidget.html#GtkWidget-child-notify" title="The “child-notify” signal"><span class="type">“child-notify”</span></a> signal for the
child property <em class="parameter"><code>child_property</code></em>

on <em class="parameter"><code>widget</code></em>
.</p>
<p>This is the analogue of <code class="function">g_object_notify()</code> for child properties.</p>
<p>Also see <a class="link" href="GtkContainer.html#gtk-container-child-notify" title="gtk_container_child_notify ()"><code class="function">gtk_container_child_notify()</code></a>.</p>
<div class="refsect3">
<a name="gtk-widget-child-notify.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>child_property</p></td>
<td class="parameter_description"><p>the name of a child property installed on the
class of <em class="parameter"><code>widget</code></em>
’s parent</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-freeze-child-notify"></a><h3>gtk_widget_freeze_child_notify ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_freeze_child_notify (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Stops emission of <a class="link" href="GtkWidget.html#GtkWidget-child-notify" title="The “child-notify” signal"><span class="type">“child-notify”</span></a> signals on <em class="parameter"><code>widget</code></em>
. The
signals are queued until <a class="link" href="GtkWidget.html#gtk-widget-thaw-child-notify" title="gtk_widget_thaw_child_notify ()"><code class="function">gtk_widget_thaw_child_notify()</code></a> is called
on <em class="parameter"><code>widget</code></em>
.</p>
<p>This is the analogue of <code class="function">g_object_freeze_notify()</code> for child properties.</p>
<div class="refsect3">
<a name="gtk-widget-freeze-child-notify.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-child-visible"></a><h3>gtk_widget_get_child_visible ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_widget_get_child_visible (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Gets the value set with <a class="link" href="GtkWidget.html#gtk-widget-set-child-visible" title="gtk_widget_set_child_visible ()"><code class="function">gtk_widget_set_child_visible()</code></a>.
If you feel a need to use this function, your code probably
needs reorganization.</p>
<p>This function is only useful for container implementations and
never should be called by an application.</p>
<div class="refsect3">
<a name="gtk-widget-get-child-visible.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-child-visible.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if the widget is mapped with the parent.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-parent"></a><h3>gtk_widget_get_parent ()</h3>
<pre class="programlisting"><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="returnvalue">GtkWidget</span></a> *
gtk_widget_get_parent (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Returns the parent container of <em class="parameter"><code>widget</code></em>
.</p>
<div class="refsect3">
<a name="gtk-widget-get-parent.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-parent.returns"></a><h4>Returns</h4>
<p>the parent container of <em class="parameter"><code>widget</code></em>
, or <code class="literal">NULL</code>. </p>
<p><span class="annotation">[<acronym title="The data is owned by the callee, which is responsible of freeing it."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-settings"></a><h3>gtk_widget_get_settings ()</h3>
<pre class="programlisting"><a class="link" href="GtkSettings.html" title="Settings"><span class="returnvalue">GtkSettings</span></a> *
gtk_widget_get_settings (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Gets the settings object holding the settings used for this widget.</p>
<p>Note that this function can only be called when the <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a>
is attached to a toplevel, since the settings object is specific
to a particular <span class="type">GdkScreen</span>.</p>
<div class="refsect3">
<a name="gtk-widget-get-settings.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-settings.returns"></a><h4>Returns</h4>
<p>the relevant <a class="link" href="GtkSettings.html" title="Settings"><span class="type">GtkSettings</span></a> object. </p>
<p><span class="annotation">[<acronym title="The data is owned by the callee, which is responsible of freeing it."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-clipboard"></a><h3>gtk_widget_get_clipboard ()</h3>
<pre class="programlisting"><a class="link" href="gtk3-Clipboards.html#GtkClipboard"><span class="returnvalue">GtkClipboard</span></a> *
gtk_widget_get_clipboard (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                          <em class="parameter"><code><span class="type">GdkAtom</span> selection</code></em>);</pre>
<p>Returns the clipboard object for the given selection to
be used with <em class="parameter"><code>widget</code></em>
. <em class="parameter"><code>widget</code></em>
 must have a <span class="type">GdkDisplay</span>
associated with it, so must be attached to a toplevel
window.</p>
<div class="refsect3">
<a name="gtk-widget-get-clipboard.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>selection</p></td>
<td class="parameter_description"><p>a <span class="type">GdkAtom</span> which identifies the clipboard
to use. <code class="literal">GDK_SELECTION_CLIPBOARD</code> gives the
default clipboard. Another common value
is <code class="literal">GDK_SELECTION_PRIMARY</code>, which gives
the primary X selection.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-clipboard.returns"></a><h4>Returns</h4>
<p>the appropriate clipboard object. If no
clipboard already exists, a new one will
be created. Once a clipboard object has
been created, it is persistent for all time. </p>
<p><span class="annotation">[<acronym title="The data is owned by the callee, which is responsible of freeing it."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
<p class="since">Since: 2.2</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-display"></a><h3>gtk_widget_get_display ()</h3>
<pre class="programlisting"><span class="returnvalue">GdkDisplay</span> *
gtk_widget_get_display (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Get the <span class="type">GdkDisplay</span> for the toplevel window associated with
this widget. This function can only be called after the widget
has been added to a widget hierarchy with a <a class="link" href="GtkWindow.html" title="GtkWindow"><span class="type">GtkWindow</span></a> at the top.</p>
<p>In general, you should only create display specific
resources when a widget has been realized, and you should
free those resources when the widget is unrealized.</p>
<div class="refsect3">
<a name="gtk-widget-get-display.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-display.returns"></a><h4>Returns</h4>
<p>the <span class="type">GdkDisplay</span> for the toplevel for this widget. </p>
<p><span class="annotation">[<acronym title="The data is owned by the callee, which is responsible of freeing it."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
<p class="since">Since: 2.2</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-root-window"></a><h3>gtk_widget_get_root_window ()</h3>
<pre class="programlisting"><span class="returnvalue">GdkWindow</span> *
gtk_widget_get_root_window (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<div class="warning">
<p><code class="literal">gtk_widget_get_root_window</code> has been deprecated since version 3.12 and should not be used in newly-written code.</p>
<p>Use <code class="function">gdk_screen_get_root_window()</code> instead</p>
</div>
<p>Get the root window where this widget is located. This function can
only be called after the widget has been added to a widget
hierarchy with <a class="link" href="GtkWindow.html" title="GtkWindow"><span class="type">GtkWindow</span></a> at the top.</p>
<p>The root window is useful for such purposes as creating a popup
<span class="type">GdkWindow</span> associated with the window. In general, you should only
create display specific resources when a widget has been realized,
and you should free those resources when the widget is unrealized.</p>
<div class="refsect3">
<a name="gtk-widget-get-root-window.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-root-window.returns"></a><h4>Returns</h4>
<p>the <span class="type">GdkWindow</span> root window for the toplevel for this widget. </p>
<p><span class="annotation">[<acronym title="The data is owned by the callee, which is responsible of freeing it."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
<p class="since">Since: 2.2</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-screen"></a><h3>gtk_widget_get_screen ()</h3>
<pre class="programlisting"><span class="returnvalue">GdkScreen</span> *
gtk_widget_get_screen (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Get the <span class="type">GdkScreen</span> from the toplevel window associated with
this widget. This function can only be called after the widget
has been added to a widget hierarchy with a <a class="link" href="GtkWindow.html" title="GtkWindow"><span class="type">GtkWindow</span></a>
at the top.</p>
<p>In general, you should only create screen specific
resources when a widget has been realized, and you should
free those resources when the widget is unrealized.</p>
<div class="refsect3">
<a name="gtk-widget-get-screen.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-screen.returns"></a><h4>Returns</h4>
<p>the <span class="type">GdkScreen</span> for the toplevel for this widget. </p>
<p><span class="annotation">[<acronym title="The data is owned by the callee, which is responsible of freeing it."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
<p class="since">Since: 2.2</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-has-screen"></a><h3>gtk_widget_has_screen ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_widget_has_screen (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Checks whether there is a <span class="type">GdkScreen</span> is associated with
this widget. All toplevel widgets have an associated
screen, and all widgets added into a hierarchy with a toplevel
window at the top.</p>
<div class="refsect3">
<a name="gtk-widget-has-screen.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-has-screen.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if there is a <span class="type">GdkScreen</span> associated
with the widget.</p>
</div>
<p class="since">Since: 2.2</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-size-request"></a><h3>gtk_widget_get_size_request ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_get_size_request (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                             <em class="parameter"><code><span class="type">gint</span> *width</code></em>,
                             <em class="parameter"><code><span class="type">gint</span> *height</code></em>);</pre>
<p>Gets the size request that was explicitly set for the widget using
<a class="link" href="GtkWidget.html#gtk-widget-set-size-request" title="gtk_widget_set_size_request ()"><code class="function">gtk_widget_set_size_request()</code></a>. A value of -1 stored in <em class="parameter"><code>width</code></em>
 or
<em class="parameter"><code>height</code></em>
 indicates that that dimension has not been set explicitly
and the natural requisition of the widget will be used instead. See
<a class="link" href="GtkWidget.html#gtk-widget-set-size-request" title="gtk_widget_set_size_request ()"><code class="function">gtk_widget_set_size_request()</code></a>. To get the size a widget will
actually request, call <a class="link" href="GtkWidget.html#gtk-widget-get-preferred-size" title="gtk_widget_get_preferred_size ()"><code class="function">gtk_widget_get_preferred_size()</code></a> instead of
this function.</p>
<div class="refsect3">
<a name="gtk-widget-get-size-request.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>width</p></td>
<td class="parameter_description"><p>return location for width, or <code class="literal">NULL</code>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>height</p></td>
<td class="parameter_description"><p>return location for height, or <code class="literal">NULL</code>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-child-visible"></a><h3>gtk_widget_set_child_visible ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_set_child_visible (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                              <em class="parameter"><code><span class="type">gboolean</span> is_visible</code></em>);</pre>
<p>Sets whether <em class="parameter"><code>widget</code></em>
 should be mapped along with its when its parent
is mapped and <em class="parameter"><code>widget</code></em>
 has been shown with <a class="link" href="GtkWidget.html#gtk-widget-show" title="gtk_widget_show ()"><code class="function">gtk_widget_show()</code></a>.</p>
<p>The child visibility can be set for widget before it is added to
a container with <a class="link" href="GtkWidget.html#gtk-widget-set-parent" title="gtk_widget_set_parent ()"><code class="function">gtk_widget_set_parent()</code></a>, to avoid mapping
children unnecessary before immediately unmapping them. However
it will be reset to its default state of <code class="literal">TRUE</code> when the widget
is removed from a container.</p>
<p>Note that changing the child visibility of a widget does not
queue a resize on the widget. Most of the time, the size of
a widget is computed from all visible children, whether or
not they are mapped. If this is not the case, the container
can queue a resize itself.</p>
<p>This function is only useful for container implementations and
never should be called by an application.</p>
<div class="refsect3">
<a name="gtk-widget-set-child-visible.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>is_visible</p></td>
<td class="parameter_description"><p>if <code class="literal">TRUE</code>, <em class="parameter"><code>widget</code></em>
should be mapped along with its parent.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-size-request"></a><h3>gtk_widget_set_size_request ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_set_size_request (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                             <em class="parameter"><code><span class="type">gint</span> width</code></em>,
                             <em class="parameter"><code><span class="type">gint</span> height</code></em>);</pre>
<p>Sets the minimum size of a widget; that is, the widget’s size
request will be at least <em class="parameter"><code>width</code></em>
 by <em class="parameter"><code>height</code></em>
. You can use this 
function to force a widget to be larger than it normally would be.</p>
<p>In most cases, <a class="link" href="GtkWindow.html#gtk-window-set-default-size" title="gtk_window_set_default_size ()"><code class="function">gtk_window_set_default_size()</code></a> is a better choice for
toplevel windows than this function; setting the default size will
still allow users to shrink the window. Setting the size request
will force them to leave the window at least as large as the size
request. When dealing with window sizes,
<a class="link" href="GtkWindow.html#gtk-window-set-geometry-hints" title="gtk_window_set_geometry_hints ()"><code class="function">gtk_window_set_geometry_hints()</code></a> can be a useful function as well.</p>
<p>Note the inherent danger of setting any fixed size - themes,
translations into other languages, different fonts, and user action
can all change the appropriate size for a given widget. So, it's
basically impossible to hardcode a size that will always be
correct.</p>
<p>The size request of a widget is the smallest size a widget can
accept while still functioning well and drawing itself correctly.
However in some strange cases a widget may be allocated less than
its requested size, and in many cases a widget may be allocated more
space than it requested.</p>
<p>If the size request in a given direction is -1 (unset), then
the “natural” size request of the widget will be used instead.</p>
<p>The size request set here does not include any margin from the
<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> properties margin-left, margin-right, margin-top, and
margin-bottom, but it does include pretty much all other padding
or border properties set by any subclass of <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a>.</p>
<div class="refsect3">
<a name="gtk-widget-set-size-request.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>width</p></td>
<td class="parameter_description"><p>width <em class="parameter"><code>widget</code></em>
should request, or -1 to unset</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>height</p></td>
<td class="parameter_description"><p>height <em class="parameter"><code>widget</code></em>
should request, or -1 to unset</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-thaw-child-notify"></a><h3>gtk_widget_thaw_child_notify ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_thaw_child_notify (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Reverts the effect of a previous call to <a class="link" href="GtkWidget.html#gtk-widget-freeze-child-notify" title="gtk_widget_freeze_child_notify ()"><code class="function">gtk_widget_freeze_child_notify()</code></a>.
This causes all queued <a class="link" href="GtkWidget.html#GtkWidget-child-notify" title="The “child-notify” signal"><span class="type">“child-notify”</span></a> signals on <em class="parameter"><code>widget</code></em>
 to be
emitted.</p>
<div class="refsect3">
<a name="gtk-widget-thaw-child-notify.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-no-show-all"></a><h3>gtk_widget_set_no_show_all ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_set_no_show_all (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                            <em class="parameter"><code><span class="type">gboolean</span> no_show_all</code></em>);</pre>
<p>Sets the <a class="link" href="GtkWidget.html#GtkWidget--no-show-all" title="The “no-show-all” property"><span class="type">“no-show-all”</span></a> property, which determines whether
calls to <a class="link" href="GtkWidget.html#gtk-widget-show-all" title="gtk_widget_show_all ()"><code class="function">gtk_widget_show_all()</code></a> will affect this widget.</p>
<p>This is mostly for use in constructing widget hierarchies with externally
controlled visibility, see <a class="link" href="GtkUIManager.html" title="GtkUIManager"><span class="type">GtkUIManager</span></a>.</p>
<div class="refsect3">
<a name="gtk-widget-set-no-show-all.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>no_show_all</p></td>
<td class="parameter_description"><p>the new value for the “no-show-all” property</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 2.4</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-no-show-all"></a><h3>gtk_widget_get_no_show_all ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_widget_get_no_show_all (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Returns the current value of the <a class="link" href="GtkWidget.html#GtkWidget--no-show-all" title="The “no-show-all” property"><span class="type">“no-show-all”</span></a> property,
which determines whether calls to <a class="link" href="GtkWidget.html#gtk-widget-show-all" title="gtk_widget_show_all ()"><code class="function">gtk_widget_show_all()</code></a>
will affect this widget.</p>
<div class="refsect3">
<a name="gtk-widget-get-no-show-all.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-no-show-all.returns"></a><h4>Returns</h4>
<p> the current value of the “no-show-all” property.</p>
</div>
<p class="since">Since: 2.4</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-list-mnemonic-labels"></a><h3>gtk_widget_list_mnemonic_labels ()</h3>
<pre class="programlisting"><span class="returnvalue">GList</span> *
gtk_widget_list_mnemonic_labels (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Returns a newly allocated list of the widgets, normally labels, for
which this widget is the target of a mnemonic (see for example,
<a class="link" href="GtkLabel.html#gtk-label-set-mnemonic-widget" title="gtk_label_set_mnemonic_widget ()"><code class="function">gtk_label_set_mnemonic_widget()</code></a>).</p>
<p>The widgets in the list are not individually referenced. If you
want to iterate through the list and perform actions involving
callbacks that might destroy the widgets, you
must call <code class="literal">g_list_foreach (result,
(GFunc)g_object_ref, NULL)</code> first, and then unref all the
widgets afterwards.</p>
<div class="refsect3">
<a name="gtk-widget-list-mnemonic-labels.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-list-mnemonic-labels.returns"></a><h4>Returns</h4>
<p>the list of
mnemonic labels; free this list
with <code class="function">g_list_free()</code> when you are done with it. </p>
<p><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> GtkWidget][<acronym title="The caller owns the data container, but not the data inside it."><span class="acronym">transfer container</span></acronym>]</span></p>
</div>
<p class="since">Since: 2.4</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-add-mnemonic-label"></a><h3>gtk_widget_add_mnemonic_label ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_add_mnemonic_label (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                               <em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *label</code></em>);</pre>
<p>Adds a widget to the list of mnemonic labels for
this widget. (See <a class="link" href="GtkWidget.html#gtk-widget-list-mnemonic-labels" title="gtk_widget_list_mnemonic_labels ()"><code class="function">gtk_widget_list_mnemonic_labels()</code></a>). Note the
list of mnemonic labels for the widget is cleared when the
widget is destroyed, so the caller must make sure to update
its internal state at this point as well, by using a connection
to the <a class="link" href="GtkWidget.html#GtkWidget-destroy" title="The “destroy” signal"><span class="type">“destroy”</span></a> signal or a weak notifier.</p>
<div class="refsect3">
<a name="gtk-widget-add-mnemonic-label.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>label</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> that acts as a mnemonic label for <em class="parameter"><code>widget</code></em>
</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 2.4</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-remove-mnemonic-label"></a><h3>gtk_widget_remove_mnemonic_label ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_remove_mnemonic_label (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                  <em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *label</code></em>);</pre>
<p>Removes a widget from the list of mnemonic labels for
this widget. (See <a class="link" href="GtkWidget.html#gtk-widget-list-mnemonic-labels" title="gtk_widget_list_mnemonic_labels ()"><code class="function">gtk_widget_list_mnemonic_labels()</code></a>). The widget
must have previously been added to the list with
<a class="link" href="GtkWidget.html#gtk-widget-add-mnemonic-label" title="gtk_widget_add_mnemonic_label ()"><code class="function">gtk_widget_add_mnemonic_label()</code></a>.</p>
<div class="refsect3">
<a name="gtk-widget-remove-mnemonic-label.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>label</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> that was previously set as a mnemonic label for
<em class="parameter"><code>widget</code></em>
with <a class="link" href="GtkWidget.html#gtk-widget-add-mnemonic-label" title="gtk_widget_add_mnemonic_label ()"><code class="function">gtk_widget_add_mnemonic_label()</code></a>.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 2.4</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-is-composited"></a><h3>gtk_widget_is_composited ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_widget_is_composited (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<div class="warning">
<p><code class="literal">gtk_widget_is_composited</code> has been deprecated since version 3.22 and should not be used in newly-written code.</p>
<p>Use <code class="function">gdk_screen_is_composited()</code> instead.</p>
</div>
<p>Whether <em class="parameter"><code>widget</code></em>
 can rely on having its alpha channel
drawn correctly. On X11 this function returns whether a
compositing manager is running for <em class="parameter"><code>widget</code></em>
’s screen.</p>
<p>Please note that the semantics of this call will change
in the future if used on a widget that has a composited
window in its hierarchy (as set by <code class="function">gdk_window_set_composited()</code>).</p>
<div class="refsect3">
<a name="gtk-widget-is-composited.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-is-composited.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if the widget can rely on its alpha
channel being drawn correctly.</p>
</div>
<p class="since">Since: 2.10</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-error-bell"></a><h3>gtk_widget_error_bell ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_error_bell (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Notifies the user about an input-related error on this widget.
If the <a class="link" href="GtkSettings.html#GtkSettings--gtk-error-bell" title="The “gtk-error-bell” property"><span class="type">“gtk-error-bell”</span></a> setting is <code class="literal">TRUE</code>, it calls
<code class="function">gdk_window_beep()</code>, otherwise it does nothing.</p>
<p>Note that the effect of <code class="function">gdk_window_beep()</code> can be configured in many
ways, depending on the windowing backend and the desktop environment
or window manager that is used.</p>
<div class="refsect3">
<a name="gtk-widget-error-bell.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<p class="since">Since: 2.12</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-keynav-failed"></a><h3>gtk_widget_keynav_failed ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_widget_keynav_failed (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                          <em class="parameter"><code><a class="link" href="gtk3-Standard-Enumerations.html#GtkDirectionType" title="enum GtkDirectionType"><span class="type">GtkDirectionType</span></a> direction</code></em>);</pre>
<p>This function should be called whenever keyboard navigation within
a single widget hits a boundary. The function emits the
<a class="link" href="GtkWidget.html#GtkWidget-keynav-failed" title="The “keynav-failed” signal"><span class="type">“keynav-failed”</span></a> signal on the widget and its return
value should be interpreted in a way similar to the return value of
<a class="link" href="GtkWidget.html#gtk-widget-child-focus" title="gtk_widget_child_focus ()"><code class="function">gtk_widget_child_focus()</code></a>:</p>
<p>When <code class="literal">TRUE</code> is returned, stay in the widget, the failed keyboard
navigation is OK and/or there is nowhere we can/should move the
focus to.</p>
<p>When <code class="literal">FALSE</code> is returned, the caller should continue with keyboard
navigation outside the widget, e.g. by calling
<a class="link" href="GtkWidget.html#gtk-widget-child-focus" title="gtk_widget_child_focus ()"><code class="function">gtk_widget_child_focus()</code></a> on the widget’s toplevel.</p>
<p>The default ::keynav-failed handler returns <code class="literal">FALSE</code> for
<a class="link" href="gtk3-Standard-Enumerations.html#GTK-DIR-TAB-FORWARD:CAPS"><code class="literal">GTK_DIR_TAB_FORWARD</code></a> and <a class="link" href="gtk3-Standard-Enumerations.html#GTK-DIR-TAB-BACKWARD:CAPS"><code class="literal">GTK_DIR_TAB_BACKWARD</code></a>. For the other
values of <a class="link" href="gtk3-Standard-Enumerations.html#GtkDirectionType" title="enum GtkDirectionType"><span class="type">GtkDirectionType</span></a> it returns <code class="literal">TRUE</code>.</p>
<p>Whenever the default handler returns <code class="literal">TRUE</code>, it also calls
<a class="link" href="GtkWidget.html#gtk-widget-error-bell" title="gtk_widget_error_bell ()"><code class="function">gtk_widget_error_bell()</code></a> to notify the user of the failed keyboard
navigation.</p>
<p>A use case for providing an own implementation of ::keynav-failed
(either by connecting to it or by overriding it) would be a row of
<a class="link" href="GtkEntry.html" title="GtkEntry"><span class="type">GtkEntry</span></a> widgets where the user should be able to navigate the
entire row with the cursor keys, as e.g. known from user interfaces
that require entering license keys.</p>
<div class="refsect3">
<a name="gtk-widget-keynav-failed.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>direction</p></td>
<td class="parameter_description"><p>direction of focus movement</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-keynav-failed.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if stopping keyboard navigation is fine, <code class="literal">FALSE</code>
if the emitting widget should try to handle the keyboard
navigation attempt in its parent container(s).</p>
</div>
<p class="since">Since: 2.12</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-tooltip-markup"></a><h3>gtk_widget_get_tooltip_markup ()</h3>
<pre class="programlisting"><span class="returnvalue">gchar</span> *
gtk_widget_get_tooltip_markup (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Gets the contents of the tooltip for <em class="parameter"><code>widget</code></em>
.</p>
<div class="refsect3">
<a name="gtk-widget-get-tooltip-markup.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-tooltip-markup.returns"></a><h4>Returns</h4>
<p>the tooltip text, or <code class="literal">NULL</code>. You should free the
returned string with <code class="function">g_free()</code> when done. </p>
<p><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
</div>
<p class="since">Since: 2.12</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-tooltip-markup"></a><h3>gtk_widget_set_tooltip_markup ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_set_tooltip_markup (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                               <em class="parameter"><code>const <span class="type">gchar</span> *markup</code></em>);</pre>
<p>Sets <em class="parameter"><code>markup</code></em>
 as the contents of the tooltip, which is marked up with
 the Pango text markup language.</p>
<p>This function will take care of setting <a class="link" href="GtkWidget.html#GtkWidget--has-tooltip" title="The “has-tooltip” property"><span class="type">“has-tooltip”</span></a> to <code class="literal">TRUE</code>
and of the default handler for the <a class="link" href="GtkWidget.html#GtkWidget-query-tooltip" title="The “query-tooltip” signal"><span class="type">“query-tooltip”</span></a> signal.</p>
<p>See also the <a class="link" href="GtkWidget.html#GtkWidget--tooltip-markup" title="The “tooltip-markup” property"><span class="type">“tooltip-markup”</span></a> property and
<a class="link" href="GtkTooltip.html#gtk-tooltip-set-markup" title="gtk_tooltip_set_markup ()"><code class="function">gtk_tooltip_set_markup()</code></a>.</p>
<div class="refsect3">
<a name="gtk-widget-set-tooltip-markup.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>markup</p></td>
<td class="parameter_description"><p>the contents of the tooltip for <em class="parameter"><code>widget</code></em>
, or <code class="literal">NULL</code>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 2.12</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-tooltip-text"></a><h3>gtk_widget_get_tooltip_text ()</h3>
<pre class="programlisting"><span class="returnvalue">gchar</span> *
gtk_widget_get_tooltip_text (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Gets the contents of the tooltip for <em class="parameter"><code>widget</code></em>
.</p>
<div class="refsect3">
<a name="gtk-widget-get-tooltip-text.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-tooltip-text.returns"></a><h4>Returns</h4>
<p>the tooltip text, or <code class="literal">NULL</code>. You should free the
returned string with <code class="function">g_free()</code> when done. </p>
<p><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
</div>
<p class="since">Since: 2.12</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-tooltip-text"></a><h3>gtk_widget_set_tooltip_text ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_set_tooltip_text (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                             <em class="parameter"><code>const <span class="type">gchar</span> *text</code></em>);</pre>
<p>Sets <em class="parameter"><code>text</code></em>
 as the contents of the tooltip. This function will take
care of setting <a class="link" href="GtkWidget.html#GtkWidget--has-tooltip" title="The “has-tooltip” property"><span class="type">“has-tooltip”</span></a> to <code class="literal">TRUE</code> and of the default
handler for the <a class="link" href="GtkWidget.html#GtkWidget-query-tooltip" title="The “query-tooltip” signal"><span class="type">“query-tooltip”</span></a> signal.</p>
<p>See also the <a class="link" href="GtkWidget.html#GtkWidget--tooltip-text" title="The “tooltip-text” property"><span class="type">“tooltip-text”</span></a> property and <a class="link" href="GtkTooltip.html#gtk-tooltip-set-text" title="gtk_tooltip_set_text ()"><code class="function">gtk_tooltip_set_text()</code></a>.</p>
<div class="refsect3">
<a name="gtk-widget-set-tooltip-text.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>text</p></td>
<td class="parameter_description"><p>the contents of the tooltip for <em class="parameter"><code>widget</code></em>
. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 2.12</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-tooltip-window"></a><h3>gtk_widget_get_tooltip_window ()</h3>
<pre class="programlisting"><a class="link" href="GtkWindow.html" title="GtkWindow"><span class="returnvalue">GtkWindow</span></a> *
gtk_widget_get_tooltip_window (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Returns the <a class="link" href="GtkWindow.html" title="GtkWindow"><span class="type">GtkWindow</span></a> of the current tooltip. This can be the
GtkWindow created by default, or the custom tooltip window set
using <a class="link" href="GtkWidget.html#gtk-widget-set-tooltip-window" title="gtk_widget_set_tooltip_window ()"><code class="function">gtk_widget_set_tooltip_window()</code></a>.</p>
<div class="refsect3">
<a name="gtk-widget-get-tooltip-window.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-tooltip-window.returns"></a><h4>Returns</h4>
<p>The <a class="link" href="GtkWindow.html" title="GtkWindow"><span class="type">GtkWindow</span></a> of the current tooltip. </p>
<p><span class="annotation">[<acronym title="The data is owned by the callee, which is responsible of freeing it."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
<p class="since">Since: 2.12</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-tooltip-window"></a><h3>gtk_widget_set_tooltip_window ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_set_tooltip_window (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                               <em class="parameter"><code><a class="link" href="GtkWindow.html" title="GtkWindow"><span class="type">GtkWindow</span></a> *custom_window</code></em>);</pre>
<p>Replaces the default window used for displaying
tooltips with <em class="parameter"><code>custom_window</code></em>
. GTK+ will take care of showing and
hiding <em class="parameter"><code>custom_window</code></em>
 at the right moment, to behave likewise as
the default tooltip window. If <em class="parameter"><code>custom_window</code></em>
 is <code class="literal">NULL</code>, the default
tooltip window will be used.</p>
<div class="refsect3">
<a name="gtk-widget-set-tooltip-window.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>custom_window</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWindow.html" title="GtkWindow"><span class="type">GtkWindow</span></a>, or <code class="literal">NULL</code>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 2.12</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-has-tooltip"></a><h3>gtk_widget_get_has_tooltip ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_widget_get_has_tooltip (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Returns the current value of the has-tooltip property.  See
<a class="link" href="GtkWidget.html#GtkWidget--has-tooltip" title="The “has-tooltip” property"><span class="type">“has-tooltip”</span></a> for more information.</p>
<div class="refsect3">
<a name="gtk-widget-get-has-tooltip.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-has-tooltip.returns"></a><h4>Returns</h4>
<p> current value of has-tooltip on <em class="parameter"><code>widget</code></em>
.</p>
</div>
<p class="since">Since: 2.12</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-has-tooltip"></a><h3>gtk_widget_set_has_tooltip ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_set_has_tooltip (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                            <em class="parameter"><code><span class="type">gboolean</span> has_tooltip</code></em>);</pre>
<p>Sets the has-tooltip property on <em class="parameter"><code>widget</code></em>
 to <em class="parameter"><code>has_tooltip</code></em>
.  See
<a class="link" href="GtkWidget.html#GtkWidget--has-tooltip" title="The “has-tooltip” property"><span class="type">“has-tooltip”</span></a> for more information.</p>
<div class="refsect3">
<a name="gtk-widget-set-has-tooltip.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>has_tooltip</p></td>
<td class="parameter_description"><p>whether or not <em class="parameter"><code>widget</code></em>
has a tooltip.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 2.12</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-trigger-tooltip-query"></a><h3>gtk_widget_trigger_tooltip_query ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_trigger_tooltip_query (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Triggers a tooltip query on the display where the toplevel of <em class="parameter"><code>widget</code></em>

is located. See <a class="link" href="GtkTooltip.html#gtk-tooltip-trigger-tooltip-query" title="gtk_tooltip_trigger_tooltip_query ()"><code class="function">gtk_tooltip_trigger_tooltip_query()</code></a> for more
information.</p>
<div class="refsect3">
<a name="gtk-widget-trigger-tooltip-query.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<p class="since">Since: 2.12</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-window"></a><h3>gtk_widget_get_window ()</h3>
<pre class="programlisting"><span class="returnvalue">GdkWindow</span> *
gtk_widget_get_window (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Returns the widget’s window if it is realized, <code class="literal">NULL</code> otherwise</p>
<div class="refsect3">
<a name="gtk-widget-get-window.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-window.returns"></a><h4>Returns</h4>
<p><em class="parameter"><code>widget</code></em>
’s window. </p>
<p><span class="annotation">[<acronym title="The data is owned by the callee, which is responsible of freeing it."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
</div>
<p class="since">Since: 2.14</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-register-window"></a><h3>gtk_widget_register_window ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_register_window (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                            <em class="parameter"><code><span class="type">GdkWindow</span> *window</code></em>);</pre>
<p>Registers a <span class="type">GdkWindow</span> with the widget and sets it up so that
the widget receives events for it. Call <a class="link" href="GtkWidget.html#gtk-widget-unregister-window" title="gtk_widget_unregister_window ()"><code class="function">gtk_widget_unregister_window()</code></a>
when destroying the window.</p>
<p>Before 3.8 you needed to call <code class="function">gdk_window_set_user_data()</code> directly to set
this up. This is now deprecated and you should use <a class="link" href="GtkWidget.html#gtk-widget-register-window" title="gtk_widget_register_window ()"><code class="function">gtk_widget_register_window()</code></a>
instead. Old code will keep working as is, although some new features like
transparency might not work perfectly.</p>
<div class="refsect3">
<a name="gtk-widget-register-window.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>window</p></td>
<td class="parameter_description"><p>a <span class="type">GdkWindow</span></p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-8.html#api-index-3.8">3.8</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-unregister-window"></a><h3>gtk_widget_unregister_window ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_unregister_window (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                              <em class="parameter"><code><span class="type">GdkWindow</span> *window</code></em>);</pre>
<p>Unregisters a <span class="type">GdkWindow</span> from the widget that was previously set up with
<a class="link" href="GtkWidget.html#gtk-widget-register-window" title="gtk_widget_register_window ()"><code class="function">gtk_widget_register_window()</code></a>. You need to call this when the window is
no longer used by the widget, such as when you destroy it.</p>
<div class="refsect3">
<a name="gtk-widget-unregister-window.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>window</p></td>
<td class="parameter_description"><p>a <span class="type">GdkWindow</span></p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-8.html#api-index-3.8">3.8</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-cairo-should-draw-window"></a><h3>gtk_cairo_should_draw_window ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_cairo_should_draw_window (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/cairo/cairo-cairo-t.html#cairo-t"><span class="type">cairo_t</span></a> *cr</code></em>,
                              <em class="parameter"><code><span class="type">GdkWindow</span> *window</code></em>);</pre>
<p>This function is supposed to be called in <a class="link" href="GtkWidget.html#GtkWidget-draw" title="The “draw” signal"><span class="type">“draw”</span></a>
implementations for widgets that support multiple windows.
<em class="parameter"><code>cr</code></em>
 must be untransformed from invoking of the draw function.
This function will return <code class="literal">TRUE</code> if the contents of the given
<em class="parameter"><code>window</code></em>
 are supposed to be drawn and <code class="literal">FALSE</code> otherwise. Note
that when the drawing was not initiated by the windowing
system this function will return <code class="literal">TRUE</code> for all windows, so
you need to draw the bottommost window first. Also, do not
use “else if” statements to check which window should be drawn.</p>
<div class="refsect3">
<a name="gtk-cairo-should-draw-window.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>cr</p></td>
<td class="parameter_description"><p>a cairo context</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>window</p></td>
<td class="parameter_description"><p>the window to check. <em class="parameter"><code>window</code></em>
may not be an input-only
window.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-cairo-should-draw-window.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if <em class="parameter"><code>window</code></em>
should be drawn</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-cairo-transform-to-window"></a><h3>gtk_cairo_transform_to_window ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_cairo_transform_to_window (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/cairo/cairo-cairo-t.html#cairo-t"><span class="type">cairo_t</span></a> *cr</code></em>,
                               <em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                               <em class="parameter"><code><span class="type">GdkWindow</span> *window</code></em>);</pre>
<p>Transforms the given cairo context <em class="parameter"><code>cr</code></em>
 that from <em class="parameter"><code>widget</code></em>
-relative
coordinates to <em class="parameter"><code>window</code></em>
-relative coordinates.
If the <em class="parameter"><code>widget</code></em>
’s window is not an ancestor of <em class="parameter"><code>window</code></em>
, no
modification will be applied.</p>
<p>This is the inverse to the transformation GTK applies when
preparing an expose event to be emitted with the <a class="link" href="GtkWidget.html#GtkWidget-draw" title="The “draw” signal"><span class="type">“draw”</span></a>
signal. It is intended to help porting multiwindow widgets from
GTK+ 2 to the rendering architecture of GTK+ 3.</p>
<div class="refsect3">
<a name="gtk-cairo-transform-to-window.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>cr</p></td>
<td class="parameter_description"><p>the cairo context to transform</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the widget the context is currently centered for</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>window</p></td>
<td class="parameter_description"><p>the window to transform the context to</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-allocated-width"></a><h3>gtk_widget_get_allocated_width ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span>
gtk_widget_get_allocated_width (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Returns the width that has currently been allocated to <em class="parameter"><code>widget</code></em>
.
This function is intended to be used when implementing handlers
for the <a class="link" href="GtkWidget.html#GtkWidget-draw" title="The “draw” signal"><span class="type">“draw”</span></a> function.</p>
<div class="refsect3">
<a name="gtk-widget-get-allocated-width.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the widget to query</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-allocated-width.returns"></a><h4>Returns</h4>
<p> the width of the <em class="parameter"><code>widget</code></em>
</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-allocated-height"></a><h3>gtk_widget_get_allocated_height ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span>
gtk_widget_get_allocated_height (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Returns the height that has currently been allocated to <em class="parameter"><code>widget</code></em>
.
This function is intended to be used when implementing handlers
for the <a class="link" href="GtkWidget.html#GtkWidget-draw" title="The “draw” signal"><span class="type">“draw”</span></a> function.</p>
<div class="refsect3">
<a name="gtk-widget-get-allocated-height.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the widget to query</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-allocated-height.returns"></a><h4>Returns</h4>
<p> the height of the <em class="parameter"><code>widget</code></em>
</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-allocation"></a><h3>gtk_widget_get_allocation ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_get_allocation (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                           <em class="parameter"><code><a class="link" href="GtkWidget.html#GtkAllocation" title="GtkAllocation"><span class="type">GtkAllocation</span></a> *allocation</code></em>);</pre>
<p>Retrieves the widget’s allocation.</p>
<p>Note, when implementing a <a class="link" href="GtkContainer.html" title="GtkContainer"><span class="type">GtkContainer</span></a>: a widget’s allocation will
be its “adjusted” allocation, that is, the widget’s parent
container typically calls <a class="link" href="GtkWidget.html#gtk-widget-size-allocate" title="gtk_widget_size_allocate ()"><code class="function">gtk_widget_size_allocate()</code></a> with an
allocation, and that allocation is then adjusted (to handle margin
and alignment for example) before assignment to the widget.
<a class="link" href="GtkWidget.html#gtk-widget-get-allocation" title="gtk_widget_get_allocation ()"><code class="function">gtk_widget_get_allocation()</code></a> returns the adjusted allocation that
was actually assigned to the widget. The adjusted allocation is
guaranteed to be completely contained within the
<a class="link" href="GtkWidget.html#gtk-widget-size-allocate" title="gtk_widget_size_allocate ()"><code class="function">gtk_widget_size_allocate()</code></a> allocation, however. So a <a class="link" href="GtkContainer.html" title="GtkContainer"><span class="type">GtkContainer</span></a>
is guaranteed that its children stay inside the assigned bounds,
but not that they have exactly the bounds the container assigned.
There is no way to get the original allocation assigned by
<a class="link" href="GtkWidget.html#gtk-widget-size-allocate" title="gtk_widget_size_allocate ()"><code class="function">gtk_widget_size_allocate()</code></a>, since it isn’t stored; if a container
implementation needs that information it will have to track it itself.</p>
<div class="refsect3">
<a name="gtk-widget-get-allocation.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>allocation</p></td>
<td class="parameter_description"><p>a pointer to a <a class="link" href="GtkWidget.html#GtkAllocation" title="GtkAllocation"><span class="type">GtkAllocation</span></a> to copy to. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 2.18</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-allocation"></a><h3>gtk_widget_set_allocation ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_set_allocation (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                           <em class="parameter"><code>const <a class="link" href="GtkWidget.html#GtkAllocation" title="GtkAllocation"><span class="type">GtkAllocation</span></a> *allocation</code></em>);</pre>
<p>Sets the widget’s allocation.  This should not be used
directly, but from within a widget’s size_allocate method.</p>
<p>The allocation set should be the “adjusted” or actual
allocation. If you’re implementing a <a class="link" href="GtkContainer.html" title="GtkContainer"><span class="type">GtkContainer</span></a>, you want to use
<a class="link" href="GtkWidget.html#gtk-widget-size-allocate" title="gtk_widget_size_allocate ()"><code class="function">gtk_widget_size_allocate()</code></a> instead of <a class="link" href="GtkWidget.html#gtk-widget-set-allocation" title="gtk_widget_set_allocation ()"><code class="function">gtk_widget_set_allocation()</code></a>.
The GtkWidgetClass::adjust_size_allocation virtual method adjusts the
allocation inside <a class="link" href="GtkWidget.html#gtk-widget-size-allocate" title="gtk_widget_size_allocate ()"><code class="function">gtk_widget_size_allocate()</code></a> to create an adjusted
allocation.</p>
<div class="refsect3">
<a name="gtk-widget-set-allocation.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>allocation</p></td>
<td class="parameter_description"><p>a pointer to a <a class="link" href="GtkWidget.html#GtkAllocation" title="GtkAllocation"><span class="type">GtkAllocation</span></a> to copy from</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 2.18</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-allocated-baseline"></a><h3>gtk_widget_get_allocated_baseline ()</h3>
<pre class="programlisting"><span class="returnvalue">int</span>
gtk_widget_get_allocated_baseline (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Returns the baseline that has currently been allocated to <em class="parameter"><code>widget</code></em>
.
This function is intended to be used when implementing handlers
for the <a class="link" href="GtkWidget.html#GtkWidget-draw" title="The “draw” signal"><span class="type">“draw”</span></a> function, and when allocating child
widgets in <a class="link" href="GtkWidget.html#GtkWidget-size-allocate" title="The “size-allocate” signal"><span class="type">“size_allocate”</span></a>.</p>
<div class="refsect3">
<a name="gtk-widget-get-allocated-baseline.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the widget to query</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-allocated-baseline.returns"></a><h4>Returns</h4>
<p> the baseline of the <em class="parameter"><code>widget</code></em>
, or -1 if none</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-10.html#api-index-3.10">3.10</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-allocated-size"></a><h3>gtk_widget_get_allocated_size ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_get_allocated_size (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                               <em class="parameter"><code><a class="link" href="GtkWidget.html#GtkAllocation" title="GtkAllocation"><span class="type">GtkAllocation</span></a> *allocation</code></em>,
                               <em class="parameter"><code><span class="type">int</span> *baseline</code></em>);</pre>
<p>Retrieves the widget’s allocated size.</p>
<p>This function returns the last values passed to
<a class="link" href="GtkWidget.html#gtk-widget-size-allocate-with-baseline" title="gtk_widget_size_allocate_with_baseline ()"><code class="function">gtk_widget_size_allocate_with_baseline()</code></a>. The value differs from
the size returned in <a class="link" href="GtkWidget.html#gtk-widget-get-allocation" title="gtk_widget_get_allocation ()"><code class="function">gtk_widget_get_allocation()</code></a> in that functions
like <a class="link" href="GtkWidget.html#gtk-widget-set-halign" title="gtk_widget_set_halign ()"><code class="function">gtk_widget_set_halign()</code></a> can adjust the allocation, but not
the value returned by this function.</p>
<p>If a widget is not visible, its allocated size is 0.</p>
<div class="refsect3">
<a name="gtk-widget-get-allocated-size.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>allocation</p></td>
<td class="parameter_description"><p>a pointer to a <a class="link" href="GtkWidget.html#GtkAllocation" title="GtkAllocation"><span class="type">GtkAllocation</span></a> to copy to. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>baseline</p></td>
<td class="parameter_description"><p>a pointer to an integer to copy to. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-20.html#api-index-3.20">3.20</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-clip"></a><h3>gtk_widget_get_clip ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_get_clip (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                     <em class="parameter"><code><a class="link" href="GtkWidget.html#GtkAllocation" title="GtkAllocation"><span class="type">GtkAllocation</span></a> *clip</code></em>);</pre>
<p>Retrieves the widget’s clip area.</p>
<p>The clip area is the area in which all of <em class="parameter"><code>widget</code></em>
's drawing will
happen. Other toolkits call it the bounding box.</p>
<p>Historically, in GTK+ the clip area has been equal to the allocation
retrieved via <a class="link" href="GtkWidget.html#gtk-widget-get-allocation" title="gtk_widget_get_allocation ()"><code class="function">gtk_widget_get_allocation()</code></a>.</p>
<div class="refsect3">
<a name="gtk-widget-get-clip.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>clip</p></td>
<td class="parameter_description"><p>a pointer to a <a class="link" href="GtkWidget.html#GtkAllocation" title="GtkAllocation"><span class="type">GtkAllocation</span></a> to copy to. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-14.html#api-index-3.14">3.14</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-clip"></a><h3>gtk_widget_set_clip ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_set_clip (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                     <em class="parameter"><code>const <a class="link" href="GtkWidget.html#GtkAllocation" title="GtkAllocation"><span class="type">GtkAllocation</span></a> *clip</code></em>);</pre>
<p>Sets the widget’s clip.  This must not be used directly,
but from within a widget’s size_allocate method.
It must be called after <a class="link" href="GtkWidget.html#gtk-widget-set-allocation" title="gtk_widget_set_allocation ()"><code class="function">gtk_widget_set_allocation()</code></a> (or after chaining up
to the parent class), because that function resets the clip.</p>
<p>The clip set should be the area that <em class="parameter"><code>widget</code></em>
 draws on. If <em class="parameter"><code>widget</code></em>
 is a
<a class="link" href="GtkContainer.html" title="GtkContainer"><span class="type">GtkContainer</span></a>, the area must contain all children's clips.</p>
<p>If this function is not called by <em class="parameter"><code>widget</code></em>
 during a ::size-allocate handler,
the clip will be set to <em class="parameter"><code>widget</code></em>
's allocation.</p>
<div class="refsect3">
<a name="gtk-widget-set-clip.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>clip</p></td>
<td class="parameter_description"><p>a pointer to a <a class="link" href="GtkWidget.html#GtkAllocation" title="GtkAllocation"><span class="type">GtkAllocation</span></a> to copy from</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-14.html#api-index-3.14">3.14</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-app-paintable"></a><h3>gtk_widget_get_app_paintable ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_widget_get_app_paintable (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Determines whether the application intends to draw on the widget in
an <a class="link" href="GtkWidget.html#GtkWidget-draw" title="The “draw” signal"><span class="type">“draw”</span></a> handler.</p>
<p>See <a class="link" href="GtkWidget.html#gtk-widget-set-app-paintable" title="gtk_widget_set_app_paintable ()"><code class="function">gtk_widget_set_app_paintable()</code></a></p>
<div class="refsect3">
<a name="gtk-widget-get-app-paintable.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-app-paintable.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if the widget is app paintable</p>
</div>
<p class="since">Since: 2.18</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-can-default"></a><h3>gtk_widget_get_can_default ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_widget_get_can_default (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Determines whether <em class="parameter"><code>widget</code></em>
 can be a default widget. See
<a class="link" href="GtkWidget.html#gtk-widget-set-can-default" title="gtk_widget_set_can_default ()"><code class="function">gtk_widget_set_can_default()</code></a>.</p>
<div class="refsect3">
<a name="gtk-widget-get-can-default.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-can-default.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if <em class="parameter"><code>widget</code></em>
can be a default widget, <code class="literal">FALSE</code> otherwise</p>
</div>
<p class="since">Since: 2.18</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-can-default"></a><h3>gtk_widget_set_can_default ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_set_can_default (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                            <em class="parameter"><code><span class="type">gboolean</span> can_default</code></em>);</pre>
<p>Specifies whether <em class="parameter"><code>widget</code></em>
 can be a default widget. See
<a class="link" href="GtkWidget.html#gtk-widget-grab-default" title="gtk_widget_grab_default ()"><code class="function">gtk_widget_grab_default()</code></a> for details about the meaning of
“default”.</p>
<div class="refsect3">
<a name="gtk-widget-set-can-default.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>can_default</p></td>
<td class="parameter_description"><p>whether or not <em class="parameter"><code>widget</code></em>
can be a default widget.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 2.18</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-can-focus"></a><h3>gtk_widget_get_can_focus ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_widget_get_can_focus (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Determines whether <em class="parameter"><code>widget</code></em>
 can own the input focus. See
<a class="link" href="GtkWidget.html#gtk-widget-set-can-focus" title="gtk_widget_set_can_focus ()"><code class="function">gtk_widget_set_can_focus()</code></a>.</p>
<div class="refsect3">
<a name="gtk-widget-get-can-focus.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-can-focus.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if <em class="parameter"><code>widget</code></em>
can own the input focus, <code class="literal">FALSE</code> otherwise</p>
</div>
<p class="since">Since: 2.18</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-can-focus"></a><h3>gtk_widget_set_can_focus ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_set_can_focus (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                          <em class="parameter"><code><span class="type">gboolean</span> can_focus</code></em>);</pre>
<p>Specifies whether <em class="parameter"><code>widget</code></em>
 can own the input focus. See
<a class="link" href="GtkWidget.html#gtk-widget-grab-focus" title="gtk_widget_grab_focus ()"><code class="function">gtk_widget_grab_focus()</code></a> for actually setting the input focus on a
widget.</p>
<div class="refsect3">
<a name="gtk-widget-set-can-focus.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>can_focus</p></td>
<td class="parameter_description"><p>whether or not <em class="parameter"><code>widget</code></em>
can own the input focus.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 2.18</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-focus-on-click"></a><h3>gtk_widget_get_focus_on_click ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_widget_get_focus_on_click (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Returns whether the widget should grab focus when it is clicked with the mouse.
See <a class="link" href="GtkWidget.html#gtk-widget-set-focus-on-click" title="gtk_widget_set_focus_on_click ()"><code class="function">gtk_widget_set_focus_on_click()</code></a>.</p>
<div class="refsect3">
<a name="gtk-widget-get-focus-on-click.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-focus-on-click.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if the widget should grab focus when it is clicked with
the mouse.</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-20.html#api-index-3.20">3.20</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-focus-on-click"></a><h3>gtk_widget_set_focus_on_click ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_set_focus_on_click (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                               <em class="parameter"><code><span class="type">gboolean</span> focus_on_click</code></em>);</pre>
<p>Sets whether the widget should grab focus when it is clicked with the mouse.
Making mouse clicks not grab focus is useful in places like toolbars where
you don’t want the keyboard focus removed from the main area of the
application.</p>
<div class="refsect3">
<a name="gtk-widget-set-focus-on-click.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>focus_on_click</p></td>
<td class="parameter_description"><p>whether the widget should grab focus when clicked with the mouse</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-20.html#api-index-3.20">3.20</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-double-buffered"></a><h3>gtk_widget_get_double_buffered ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_widget_get_double_buffered (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<div class="warning"><p><code class="literal">gtk_widget_get_double_buffered</code> is deprecated and should not be used in newly-written code.</p></div>
<p>Determines whether the widget is double buffered.</p>
<p>See <a class="link" href="GtkWidget.html#gtk-widget-set-double-buffered" title="gtk_widget_set_double_buffered ()"><code class="function">gtk_widget_set_double_buffered()</code></a></p>
<div class="refsect3">
<a name="gtk-widget-get-double-buffered.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-double-buffered.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if the widget is double buffered</p>
</div>
<p class="since">Since: 2.18</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-has-window"></a><h3>gtk_widget_get_has_window ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_widget_get_has_window (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Determines whether <em class="parameter"><code>widget</code></em>
 has a <span class="type">GdkWindow</span> of its own. See
<a class="link" href="GtkWidget.html#gtk-widget-set-has-window" title="gtk_widget_set_has_window ()"><code class="function">gtk_widget_set_has_window()</code></a>.</p>
<div class="refsect3">
<a name="gtk-widget-get-has-window.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-has-window.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if <em class="parameter"><code>widget</code></em>
has a window, <code class="literal">FALSE</code> otherwise</p>
</div>
<p class="since">Since: 2.18</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-has-window"></a><h3>gtk_widget_set_has_window ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_set_has_window (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                           <em class="parameter"><code><span class="type">gboolean</span> has_window</code></em>);</pre>
<p>Specifies whether <em class="parameter"><code>widget</code></em>
 has a <span class="type">GdkWindow</span> of its own. Note that
all realized widgets have a non-<code class="literal">NULL</code> “window” pointer
(<a class="link" href="GtkWidget.html#gtk-widget-get-window" title="gtk_widget_get_window ()"><code class="function">gtk_widget_get_window()</code></a> never returns a <code class="literal">NULL</code> window when a widget
is realized), but for many of them it’s actually the <span class="type">GdkWindow</span> of
one of its parent widgets. Widgets that do not create a <code class="literal">window</code> for
themselves in <a class="link" href="GtkWidget.html#GtkWidget-realize" title="The “realize” signal"><span class="type">“realize”</span></a> must announce this by
calling this function with <em class="parameter"><code>has_window</code></em>
 = <code class="literal">FALSE</code>.</p>
<p>This function should only be called by widget implementations,
and they should call it in their <code class="function">init()</code> function.</p>
<div class="refsect3">
<a name="gtk-widget-set-has-window.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>has_window</p></td>
<td class="parameter_description"><p>whether or not <em class="parameter"><code>widget</code></em>
has a window.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 2.18</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-sensitive"></a><h3>gtk_widget_get_sensitive ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_widget_get_sensitive (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Returns the widget’s sensitivity (in the sense of returning
the value that has been set using <a class="link" href="GtkWidget.html#gtk-widget-set-sensitive" title="gtk_widget_set_sensitive ()"><code class="function">gtk_widget_set_sensitive()</code></a>).</p>
<p>The effective sensitivity of a widget is however determined by both its
own and its parent widget’s sensitivity. See <a class="link" href="GtkWidget.html#gtk-widget-is-sensitive" title="gtk_widget_is_sensitive ()"><code class="function">gtk_widget_is_sensitive()</code></a>.</p>
<div class="refsect3">
<a name="gtk-widget-get-sensitive.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-sensitive.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if the widget is sensitive</p>
</div>
<p class="since">Since: 2.18</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-is-sensitive"></a><h3>gtk_widget_is_sensitive ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_widget_is_sensitive (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Returns the widget’s effective sensitivity, which means
it is sensitive itself and also its parent widget is sensitive</p>
<div class="refsect3">
<a name="gtk-widget-is-sensitive.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-is-sensitive.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if the widget is effectively sensitive</p>
</div>
<p class="since">Since: 2.18</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-state"></a><h3>gtk_widget_get_state ()</h3>
<pre class="programlisting"><a class="link" href="GtkWidget.html#GtkStateType" title="enum GtkStateType"><span class="returnvalue">GtkStateType</span></a>
gtk_widget_get_state (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<div class="warning">
<p><code class="literal">gtk_widget_get_state</code> has been deprecated since version 3.0 and should not be used in newly-written code.</p>
<p>Use <a class="link" href="GtkWidget.html#gtk-widget-get-state-flags" title="gtk_widget_get_state_flags ()"><code class="function">gtk_widget_get_state_flags()</code></a> instead.</p>
</div>
<p>Returns the widget’s state. See <a class="link" href="GtkWidget.html#gtk-widget-set-state" title="gtk_widget_set_state ()"><code class="function">gtk_widget_set_state()</code></a>.</p>
<div class="refsect3">
<a name="gtk-widget-get-state.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-state.returns"></a><h4>Returns</h4>
<p> the state of <em class="parameter"><code>widget</code></em>
.</p>
</div>
<p class="since">Since: 2.18</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-visible"></a><h3>gtk_widget_get_visible ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_widget_get_visible (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Determines whether the widget is visible. If you want to
take into account whether the widget’s parent is also marked as
visible, use <a class="link" href="GtkWidget.html#gtk-widget-is-visible" title="gtk_widget_is_visible ()"><code class="function">gtk_widget_is_visible()</code></a> instead.</p>
<p>This function does not check if the widget is obscured in any way.</p>
<p>See <a class="link" href="GtkWidget.html#gtk-widget-set-visible" title="gtk_widget_set_visible ()"><code class="function">gtk_widget_set_visible()</code></a>.</p>
<div class="refsect3">
<a name="gtk-widget-get-visible.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-visible.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if the widget is visible</p>
</div>
<p class="since">Since: 2.18</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-is-visible"></a><h3>gtk_widget_is_visible ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_widget_is_visible (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Determines whether the widget and all its parents are marked as
visible.</p>
<p>This function does not check if the widget is obscured in any way.</p>
<p>See also <a class="link" href="GtkWidget.html#gtk-widget-get-visible" title="gtk_widget_get_visible ()"><code class="function">gtk_widget_get_visible()</code></a> and <a class="link" href="GtkWidget.html#gtk-widget-set-visible" title="gtk_widget_set_visible ()"><code class="function">gtk_widget_set_visible()</code></a></p>
<div class="refsect3">
<a name="gtk-widget-is-visible.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-is-visible.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if the widget and all its parents are visible</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-8.html#api-index-3.8">3.8</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-visible"></a><h3>gtk_widget_set_visible ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_set_visible (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                        <em class="parameter"><code><span class="type">gboolean</span> visible</code></em>);</pre>
<p>Sets the visibility state of <em class="parameter"><code>widget</code></em>
. Note that setting this to
<code class="literal">TRUE</code> doesn’t mean the widget is actually viewable, see
<a class="link" href="GtkWidget.html#gtk-widget-get-visible" title="gtk_widget_get_visible ()"><code class="function">gtk_widget_get_visible()</code></a>.</p>
<p>This function simply calls <a class="link" href="GtkWidget.html#gtk-widget-show" title="gtk_widget_show ()"><code class="function">gtk_widget_show()</code></a> or <a class="link" href="GtkWidget.html#gtk-widget-hide" title="gtk_widget_hide ()"><code class="function">gtk_widget_hide()</code></a>
but is nicer to use when the visibility of the widget depends on
some condition.</p>
<div class="refsect3">
<a name="gtk-widget-set-visible.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>visible</p></td>
<td class="parameter_description"><p>whether the widget should be shown or not</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 2.18</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-state-flags"></a><h3>gtk_widget_set_state_flags ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_set_state_flags (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                            <em class="parameter"><code><a class="link" href="gtk3-Standard-Enumerations.html#GtkStateFlags" title="enum GtkStateFlags"><span class="type">GtkStateFlags</span></a> flags</code></em>,
                            <em class="parameter"><code><span class="type">gboolean</span> clear</code></em>);</pre>
<p>This function is for use in widget implementations. Turns on flag
values in the current widget state (insensitive, prelighted, etc.).</p>
<p>This function accepts the values <a class="link" href="gtk3-Standard-Enumerations.html#GTK-STATE-FLAG-DIR-LTR:CAPS"><code class="literal">GTK_STATE_FLAG_DIR_LTR</code></a> and
<a class="link" href="gtk3-Standard-Enumerations.html#GTK-STATE-FLAG-DIR-RTL:CAPS"><code class="literal">GTK_STATE_FLAG_DIR_RTL</code></a> but ignores them. If you want to set the widget's
direction, use <a class="link" href="GtkWidget.html#gtk-widget-set-direction" title="gtk_widget_set_direction ()"><code class="function">gtk_widget_set_direction()</code></a>.</p>
<p>It is worth mentioning that any other state than <a class="link" href="gtk3-Standard-Enumerations.html#GTK-STATE-FLAG-INSENSITIVE:CAPS"><code class="literal">GTK_STATE_FLAG_INSENSITIVE</code></a>,
will be propagated down to all non-internal children if <em class="parameter"><code>widget</code></em>
 is a
<a class="link" href="GtkContainer.html" title="GtkContainer"><span class="type">GtkContainer</span></a>, while <a class="link" href="gtk3-Standard-Enumerations.html#GTK-STATE-FLAG-INSENSITIVE:CAPS"><code class="literal">GTK_STATE_FLAG_INSENSITIVE</code></a> itself will be propagated
down to all <a class="link" href="GtkContainer.html" title="GtkContainer"><span class="type">GtkContainer</span></a> children by different means than turning on the
state flag down the hierarchy, both <a class="link" href="GtkWidget.html#gtk-widget-get-state-flags" title="gtk_widget_get_state_flags ()"><code class="function">gtk_widget_get_state_flags()</code></a> and
<a class="link" href="GtkWidget.html#gtk-widget-is-sensitive" title="gtk_widget_is_sensitive ()"><code class="function">gtk_widget_is_sensitive()</code></a> will make use of these.</p>
<div class="refsect3">
<a name="gtk-widget-set-state-flags.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>flags</p></td>
<td class="parameter_description"><p>State flags to turn on</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>clear</p></td>
<td class="parameter_description"><p>Whether to clear state before turning on <em class="parameter"><code>flags</code></em>
</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-unset-state-flags"></a><h3>gtk_widget_unset_state_flags ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_unset_state_flags (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                              <em class="parameter"><code><a class="link" href="gtk3-Standard-Enumerations.html#GtkStateFlags" title="enum GtkStateFlags"><span class="type">GtkStateFlags</span></a> flags</code></em>);</pre>
<p>This function is for use in widget implementations. Turns off flag
values for the current widget state (insensitive, prelighted, etc.).
See <a class="link" href="GtkWidget.html#gtk-widget-set-state-flags" title="gtk_widget_set_state_flags ()"><code class="function">gtk_widget_set_state_flags()</code></a>.</p>
<div class="refsect3">
<a name="gtk-widget-unset-state-flags.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>flags</p></td>
<td class="parameter_description"><p>State flags to turn off</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-state-flags"></a><h3>gtk_widget_get_state_flags ()</h3>
<pre class="programlisting"><a class="link" href="gtk3-Standard-Enumerations.html#GtkStateFlags" title="enum GtkStateFlags"><span class="returnvalue">GtkStateFlags</span></a>
gtk_widget_get_state_flags (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Returns the widget state as a flag set. It is worth mentioning
that the effective <a class="link" href="gtk3-Standard-Enumerations.html#GTK-STATE-FLAG-INSENSITIVE:CAPS"><code class="literal">GTK_STATE_FLAG_INSENSITIVE</code></a> state will be
returned, that is, also based on parent insensitivity, even if
<em class="parameter"><code>widget</code></em>
 itself is sensitive.</p>
<p>Also note that if you are looking for a way to obtain the
<a class="link" href="gtk3-Standard-Enumerations.html#GtkStateFlags" title="enum GtkStateFlags"><span class="type">GtkStateFlags</span></a> to pass to a <a class="link" href="GtkStyleContext.html" title="GtkStyleContext"><span class="type">GtkStyleContext</span></a> method, you
should look at <a class="link" href="GtkStyleContext.html#gtk-style-context-get-state" title="gtk_style_context_get_state ()"><code class="function">gtk_style_context_get_state()</code></a>.</p>
<div class="refsect3">
<a name="gtk-widget-get-state-flags.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-state-flags.returns"></a><h4>Returns</h4>
<p> The state flags for widget</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-has-default"></a><h3>gtk_widget_has_default ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_widget_has_default (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Determines whether <em class="parameter"><code>widget</code></em>
 is the current default widget within its
toplevel. See <a class="link" href="GtkWidget.html#gtk-widget-set-can-default" title="gtk_widget_set_can_default ()"><code class="function">gtk_widget_set_can_default()</code></a>.</p>
<div class="refsect3">
<a name="gtk-widget-has-default.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-has-default.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if <em class="parameter"><code>widget</code></em>
is the current default widget within
its toplevel, <code class="literal">FALSE</code> otherwise</p>
</div>
<p class="since">Since: 2.18</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-has-focus"></a><h3>gtk_widget_has_focus ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_widget_has_focus (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Determines if the widget has the global input focus. See
<a class="link" href="GtkWidget.html#gtk-widget-is-focus" title="gtk_widget_is_focus ()"><code class="function">gtk_widget_is_focus()</code></a> for the difference between having the global
input focus, and only having the focus within a toplevel.</p>
<div class="refsect3">
<a name="gtk-widget-has-focus.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-has-focus.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if the widget has the global input focus.</p>
</div>
<p class="since">Since: 2.18</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-has-visible-focus"></a><h3>gtk_widget_has_visible_focus ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_widget_has_visible_focus (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Determines if the widget should show a visible indication that
it has the global input focus. This is a convenience function for
use in ::draw handlers that takes into account whether focus
indication should currently be shown in the toplevel window of
<em class="parameter"><code>widget</code></em>
. See <a class="link" href="GtkWindow.html#gtk-window-get-focus-visible" title="gtk_window_get_focus_visible ()"><code class="function">gtk_window_get_focus_visible()</code></a> for more information
about focus indication.</p>
<p>To find out if the widget has the global input focus, use
<a class="link" href="GtkWidget.html#gtk-widget-has-focus" title="gtk_widget_has_focus ()"><code class="function">gtk_widget_has_focus()</code></a>.</p>
<div class="refsect3">
<a name="gtk-widget-has-visible-focus.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-has-visible-focus.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if the widget should display a “focus rectangle”</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-2.html#api-index-3.2">3.2</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-has-grab"></a><h3>gtk_widget_has_grab ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_widget_has_grab (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Determines whether the widget is currently grabbing events, so it
is the only widget receiving input events (keyboard and mouse).</p>
<p>See also <a class="link" href="gtk3-General.html#gtk-grab-add" title="gtk_grab_add ()"><code class="function">gtk_grab_add()</code></a>.</p>
<div class="refsect3">
<a name="gtk-widget-has-grab.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-has-grab.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if the widget is in the grab_widgets stack</p>
</div>
<p class="since">Since: 2.18</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-has-rc-style"></a><h3>gtk_widget_has_rc_style ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_widget_has_rc_style (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<div class="warning">
<p><code class="literal">gtk_widget_has_rc_style</code> has been deprecated since version 3.0 and should not be used in newly-written code.</p>
<p>Use <a class="link" href="GtkStyleContext.html" title="GtkStyleContext"><span class="type">GtkStyleContext</span></a> instead</p>
</div>
<p>Determines if the widget style has been looked up through the rc mechanism.</p>
<div class="refsect3">
<a name="gtk-widget-has-rc-style.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-has-rc-style.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if the widget has been looked up through the rc
mechanism, <code class="literal">FALSE</code> otherwise.</p>
</div>
<p class="since">Since: 2.20</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-is-drawable"></a><h3>gtk_widget_is_drawable ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_widget_is_drawable (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Determines whether <em class="parameter"><code>widget</code></em>
 can be drawn to. A widget can be drawn
to if it is mapped and visible.</p>
<div class="refsect3">
<a name="gtk-widget-is-drawable.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-is-drawable.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if <em class="parameter"><code>widget</code></em>
is drawable, <code class="literal">FALSE</code> otherwise</p>
</div>
<p class="since">Since: 2.18</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-is-toplevel"></a><h3>gtk_widget_is_toplevel ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_widget_is_toplevel (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Determines whether <em class="parameter"><code>widget</code></em>
 is a toplevel widget.</p>
<p>Currently only <a class="link" href="GtkWindow.html" title="GtkWindow"><span class="type">GtkWindow</span></a> and <a class="link" href="GtkInvisible.html" title="GtkInvisible"><span class="type">GtkInvisible</span></a> (and out-of-process
<a href="GtkPlug.html#GtkPlug-struct"><span class="type">GtkPlugs</span></a>) are toplevel widgets. Toplevel widgets have no parent
widget.</p>
<div class="refsect3">
<a name="gtk-widget-is-toplevel.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-is-toplevel.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if <em class="parameter"><code>widget</code></em>
is a toplevel, <code class="literal">FALSE</code> otherwise</p>
</div>
<p class="since">Since: 2.18</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-window"></a><h3>gtk_widget_set_window ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_set_window (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                       <em class="parameter"><code><span class="type">GdkWindow</span> *window</code></em>);</pre>
<p>Sets a widget’s window. This function should only be used in a
widget’s <a class="link" href="GtkWidget.html#GtkWidget-realize" title="The “realize” signal"><span class="type">“realize”</span></a> implementation. The <code class="literal">window</code> passed is
usually either new window created with <code class="function">gdk_window_new()</code>, or the
window of its parent widget as returned by
<a class="link" href="GtkWidget.html#gtk-widget-get-parent-window" title="gtk_widget_get_parent_window ()"><code class="function">gtk_widget_get_parent_window()</code></a>.</p>
<p>Widgets must indicate whether they will create their own <span class="type">GdkWindow</span>
by calling <a class="link" href="GtkWidget.html#gtk-widget-set-has-window" title="gtk_widget_set_has_window ()"><code class="function">gtk_widget_set_has_window()</code></a>. This is usually done in the
widget’s <code class="function">init()</code> function.</p>
<p>Note that this function does not add any reference to <em class="parameter"><code>window</code></em>
.</p>
<div class="refsect3">
<a name="gtk-widget-set-window.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>window</p></td>
<td class="parameter_description"><p>a <span class="type">GdkWindow</span>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="The caller owns the data, and is responsible for free it."><span class="acronym">transfer full</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 2.18</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-receives-default"></a><h3>gtk_widget_set_receives_default ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_set_receives_default (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                 <em class="parameter"><code><span class="type">gboolean</span> receives_default</code></em>);</pre>
<p>Specifies whether <em class="parameter"><code>widget</code></em>
 will be treated as the default widget
within its toplevel when it has the focus, even if another widget
is the default.</p>
<p>See <a class="link" href="GtkWidget.html#gtk-widget-grab-default" title="gtk_widget_grab_default ()"><code class="function">gtk_widget_grab_default()</code></a> for details about the meaning of
“default”.</p>
<div class="refsect3">
<a name="gtk-widget-set-receives-default.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>receives_default</p></td>
<td class="parameter_description"><p>whether or not <em class="parameter"><code>widget</code></em>
can be a default widget.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 2.18</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-receives-default"></a><h3>gtk_widget_get_receives_default ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_widget_get_receives_default (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Determines whether <em class="parameter"><code>widget</code></em>
 is always treated as the default widget
within its toplevel when it has the focus, even if another widget
is the default.</p>
<p>See <a class="link" href="GtkWidget.html#gtk-widget-set-receives-default" title="gtk_widget_set_receives_default ()"><code class="function">gtk_widget_set_receives_default()</code></a>.</p>
<div class="refsect3">
<a name="gtk-widget-get-receives-default.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-receives-default.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if <em class="parameter"><code>widget</code></em>
acts as the default widget when focused,
<code class="literal">FALSE</code> otherwise</p>
</div>
<p class="since">Since: 2.18</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-support-multidevice"></a><h3>gtk_widget_set_support_multidevice ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_set_support_multidevice (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                    <em class="parameter"><code><span class="type">gboolean</span> support_multidevice</code></em>);</pre>
<p>Enables or disables multiple pointer awareness. If this setting is <code class="literal">TRUE</code>,
<em class="parameter"><code>widget</code></em>
 will start receiving multiple, per device enter/leave events. Note
that if custom <span class="type">GdkWindows</span> are created in <a class="link" href="GtkWidget.html#GtkWidget-realize" title="The “realize” signal"><span class="type">“realize”</span></a>,
<code class="function">gdk_window_set_support_multidevice()</code> will have to be called manually on them.</p>
<div class="refsect3">
<a name="gtk-widget-set-support-multidevice.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>support_multidevice</p></td>
<td class="parameter_description"><p><code class="literal">TRUE</code> to support input from multiple devices.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-support-multidevice"></a><h3>gtk_widget_get_support_multidevice ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_widget_get_support_multidevice (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Returns <code class="literal">TRUE</code> if <em class="parameter"><code>widget</code></em>
 is multiple pointer aware. See
<a class="link" href="GtkWidget.html#gtk-widget-set-support-multidevice" title="gtk_widget_set_support_multidevice ()"><code class="function">gtk_widget_set_support_multidevice()</code></a> for more information.</p>
<div class="refsect3">
<a name="gtk-widget-get-support-multidevice.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-support-multidevice.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if <em class="parameter"><code>widget</code></em>
is multidevice aware.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-realized"></a><h3>gtk_widget_set_realized ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_set_realized (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                         <em class="parameter"><code><span class="type">gboolean</span> realized</code></em>);</pre>
<p>Marks the widget as being realized. This function must only be 
called after all <span class="type">GdkWindows</span> for the <em class="parameter"><code>widget</code></em>
 have been created 
and registered.</p>
<p>This function should only ever be called in a derived widget's
“realize” or “unrealize” implementation.</p>
<div class="refsect3">
<a name="gtk-widget-set-realized.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>realized</p></td>
<td class="parameter_description"><p><code class="literal">TRUE</code> to mark the widget as realized</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 2.20</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-realized"></a><h3>gtk_widget_get_realized ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_widget_get_realized (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Determines whether <em class="parameter"><code>widget</code></em>
 is realized.</p>
<div class="refsect3">
<a name="gtk-widget-get-realized.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-realized.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if <em class="parameter"><code>widget</code></em>
is realized, <code class="literal">FALSE</code> otherwise</p>
</div>
<p class="since">Since: 2.20</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-mapped"></a><h3>gtk_widget_set_mapped ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_set_mapped (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                       <em class="parameter"><code><span class="type">gboolean</span> mapped</code></em>);</pre>
<p>Marks the widget as being mapped.</p>
<p>This function should only ever be called in a derived widget's
“map” or “unmap” implementation.</p>
<div class="refsect3">
<a name="gtk-widget-set-mapped.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>mapped</p></td>
<td class="parameter_description"><p><code class="literal">TRUE</code> to mark the widget as mapped</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 2.20</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-mapped"></a><h3>gtk_widget_get_mapped ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_widget_get_mapped (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Whether the widget is mapped.</p>
<div class="refsect3">
<a name="gtk-widget-get-mapped.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-mapped.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if the widget is mapped, <code class="literal">FALSE</code> otherwise.</p>
</div>
<p class="since">Since: 2.20</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-requisition"></a><h3>gtk_widget_get_requisition ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_get_requisition (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                            <em class="parameter"><code><a class="link" href="GtkWidget.html#GtkRequisition"><span class="type">GtkRequisition</span></a> *requisition</code></em>);</pre>
<div class="warning">
<p><code class="literal">gtk_widget_get_requisition</code> has been deprecated since version 3.0 and should not be used in newly-written code.</p>
<p>The <a class="link" href="GtkWidget.html#GtkRequisition"><span class="type">GtkRequisition</span></a> cache on the widget was
removed, If you need to cache sizes across requests and allocations,
add an explicit cache to the widget in question instead.</p>
</div>
<p>Retrieves the widget’s requisition.</p>
<p>This function should only be used by widget implementations in
order to figure whether the widget’s requisition has actually
changed after some internal state change (so that they can call
<a class="link" href="GtkWidget.html#gtk-widget-queue-resize" title="gtk_widget_queue_resize ()"><code class="function">gtk_widget_queue_resize()</code></a> instead of <a class="link" href="GtkWidget.html#gtk-widget-queue-draw" title="gtk_widget_queue_draw ()"><code class="function">gtk_widget_queue_draw()</code></a>).</p>
<p>Normally, <a class="link" href="GtkWidget.html#gtk-widget-size-request" title="gtk_widget_size_request ()"><code class="function">gtk_widget_size_request()</code></a> should be used.</p>
<div class="refsect3">
<a name="gtk-widget-get-requisition.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>requisition</p></td>
<td class="parameter_description"><p>a pointer to a <a class="link" href="GtkWidget.html#GtkRequisition"><span class="type">GtkRequisition</span></a> to copy to. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: 2.20</p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-device-is-shadowed"></a><h3>gtk_widget_device_is_shadowed ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_widget_device_is_shadowed (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                               <em class="parameter"><code><span class="type">GdkDevice</span> *device</code></em>);</pre>
<p>Returns <code class="literal">TRUE</code> if <em class="parameter"><code>device</code></em>
 has been shadowed by a GTK+
device grab on another widget, so it would stop sending
events to <em class="parameter"><code>widget</code></em>
. This may be used in the
<a class="link" href="GtkWidget.html#GtkWidget-grab-notify" title="The “grab-notify” signal"><span class="type">“grab-notify”</span></a> signal to check for specific
devices. See <a class="link" href="gtk3-General.html#gtk-device-grab-add" title="gtk_device_grab_add ()"><code class="function">gtk_device_grab_add()</code></a>.</p>
<div class="refsect3">
<a name="gtk-widget-device-is-shadowed.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>device</p></td>
<td class="parameter_description"><p>a <span class="type">GdkDevice</span></p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-device-is-shadowed.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if there is an ongoing grab on <em class="parameter"><code>device</code></em>
by another <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> than <em class="parameter"><code>widget</code></em>
.</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-modifier-mask"></a><h3>gtk_widget_get_modifier_mask ()</h3>
<pre class="programlisting"><span class="returnvalue">GdkModifierType</span>
gtk_widget_get_modifier_mask (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                              <em class="parameter"><code><span class="type">GdkModifierIntent</span> intent</code></em>);</pre>
<p>Returns the modifier mask the <em class="parameter"><code>widget</code></em>
’s windowing system backend
uses for a particular purpose.</p>
<p>See <code class="function">gdk_keymap_get_modifier_mask()</code>.</p>
<div class="refsect3">
<a name="gtk-widget-get-modifier-mask.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>intent</p></td>
<td class="parameter_description"><p>the use case for the modifier mask</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-modifier-mask.returns"></a><h4>Returns</h4>
<p> the modifier mask used for <em class="parameter"><code>intent</code></em>
.</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-4.html#api-index-3.4">3.4</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-insert-action-group"></a><h3>gtk_widget_insert_action_group ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_insert_action_group (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                <em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>,
                                <em class="parameter"><code><span class="type">GActionGroup</span> *group</code></em>);</pre>
<p>Inserts <em class="parameter"><code>group</code></em>
 into <em class="parameter"><code>widget</code></em>
. Children of <em class="parameter"><code>widget</code></em>
 that implement
<a class="link" href="GtkActionable.html" title="GtkActionable"><span class="type">GtkActionable</span></a> can then be associated with actions in <em class="parameter"><code>group</code></em>
 by
setting their “action-name” to
<em class="parameter"><code>prefix</code></em>
.<code class="literal">action-name</code>.</p>
<p>If <em class="parameter"><code>group</code></em>
 is <code class="literal">NULL</code>, a previously inserted group for <em class="parameter"><code>name</code></em>
 is removed
from <em class="parameter"><code>widget</code></em>
.</p>
<div class="refsect3">
<a name="gtk-widget-insert-action-group.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>name</p></td>
<td class="parameter_description"><p>the prefix for actions in <em class="parameter"><code>group</code></em>
</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>group</p></td>
<td class="parameter_description"><p>a <span class="type">GActionGroup</span>, or <code class="literal">NULL</code>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-6.html#api-index-3.6">3.6</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-opacity"></a><h3>gtk_widget_get_opacity ()</h3>
<pre class="programlisting"><span class="returnvalue">double</span>
gtk_widget_get_opacity (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Fetches the requested opacity for this widget.
See <a class="link" href="GtkWidget.html#gtk-widget-set-opacity" title="gtk_widget_set_opacity ()"><code class="function">gtk_widget_set_opacity()</code></a>.</p>
<div class="refsect3">
<a name="gtk-widget-get-opacity.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-opacity.returns"></a><h4>Returns</h4>
<p> the requested opacity for this widget.</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-8.html#api-index-3.8">3.8</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-opacity"></a><h3>gtk_widget_set_opacity ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_set_opacity (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                        <em class="parameter"><code><span class="type">double</span> opacity</code></em>);</pre>
<p>Request the <em class="parameter"><code>widget</code></em>
 to be rendered partially transparent,
with opacity 0 being fully transparent and 1 fully opaque. (Opacity values
are clamped to the [0,1] range.).
This works on both toplevel widget, and child widgets, although there
are some limitations:</p>
<p>For toplevel widgets this depends on the capabilities of the windowing
system. On X11 this has any effect only on X screens with a compositing manager
running. See <a class="link" href="GtkWidget.html#gtk-widget-is-composited" title="gtk_widget_is_composited ()"><code class="function">gtk_widget_is_composited()</code></a>. On Windows it should work
always, although setting a window’s opacity after the window has been
shown causes it to flicker once on Windows.</p>
<p>For child widgets it doesn’t work if any affected widget has a native window, or
disables double buffering.</p>
<div class="refsect3">
<a name="gtk-widget-set-opacity.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>opacity</p></td>
<td class="parameter_description"><p>desired opacity, between 0 and 1</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-8.html#api-index-3.8">3.8</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-list-action-prefixes"></a><h3>gtk_widget_list_action_prefixes ()</h3>
<pre class="programlisting">const <span class="returnvalue">gchar</span> **
gtk_widget_list_action_prefixes (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Retrieves a <code class="literal">NULL</code>-terminated array of strings containing the prefixes of
<span class="type">GActionGroup</span>'s available to <em class="parameter"><code>widget</code></em>
.</p>
<div class="refsect3">
<a name="gtk-widget-list-action-prefixes.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>A <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-list-action-prefixes.returns"></a><h4>Returns</h4>
<p>a <code class="literal">NULL</code>-terminated array of strings. </p>
<p><span class="annotation">[<acronym title="The caller owns the data container, but not the data inside it."><span class="acronym">transfer container</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-16.html#api-index-3.16">3.16</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-action-group"></a><h3>gtk_widget_get_action_group ()</h3>
<pre class="programlisting"><span class="returnvalue">GActionGroup</span> *
gtk_widget_get_action_group (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                             <em class="parameter"><code>const <span class="type">gchar</span> *prefix</code></em>);</pre>
<p>Retrieves the <span class="type">GActionGroup</span> that was registered using <em class="parameter"><code>prefix</code></em>
. The resulting
<span class="type">GActionGroup</span> may have been registered to <em class="parameter"><code>widget</code></em>
 or any <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> in its
ancestry.</p>
<p>If no action group was found matching <em class="parameter"><code>prefix</code></em>
, then <code class="literal">NULL</code> is returned.</p>
<div class="refsect3">
<a name="gtk-widget-get-action-group.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>A <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>prefix</p></td>
<td class="parameter_description"><p>The “prefix” of the action group.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-action-group.returns"></a><h4>Returns</h4>
<p>A <span class="type">GActionGroup</span> or <code class="literal">NULL</code>. </p>
<p><span class="annotation">[<acronym title="The data is owned by the callee, which is responsible of freeing it."><span class="acronym">transfer none</span></acronym>][<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-16.html#api-index-3.16">3.16</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-path"></a><h3>gtk_widget_get_path ()</h3>
<pre class="programlisting"><a class="link" href="gtk3-GtkWidgetPath.html#GtkWidgetPath" title="GtkWidgetPath"><span class="returnvalue">GtkWidgetPath</span></a> *
gtk_widget_get_path (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Returns the <a class="link" href="gtk3-GtkWidgetPath.html#GtkWidgetPath" title="GtkWidgetPath"><span class="type">GtkWidgetPath</span></a> representing <em class="parameter"><code>widget</code></em>
, if the widget
is not connected to a toplevel widget, a partial path will be
created.</p>
<div class="refsect3">
<a name="gtk-widget-get-path.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-path.returns"></a><h4>Returns</h4>
<p>The <a class="link" href="gtk3-GtkWidgetPath.html#GtkWidgetPath" title="GtkWidgetPath"><span class="type">GtkWidgetPath</span></a> representing <em class="parameter"><code>widget</code></em>
. </p>
<p><span class="annotation">[<acronym title="The data is owned by the callee, which is responsible of freeing it."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-style-context"></a><h3>gtk_widget_get_style_context ()</h3>
<pre class="programlisting"><a class="link" href="GtkStyleContext.html" title="GtkStyleContext"><span class="returnvalue">GtkStyleContext</span></a> *
gtk_widget_get_style_context (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Returns the style context associated to <em class="parameter"><code>widget</code></em>
. The returned object is
guaranteed to be the same for the lifetime of <em class="parameter"><code>widget</code></em>
.</p>
<div class="refsect3">
<a name="gtk-widget-get-style-context.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-style-context.returns"></a><h4>Returns</h4>
<p>a <a class="link" href="GtkStyleContext.html" title="GtkStyleContext"><span class="type">GtkStyleContext</span></a>. This memory is owned by <em class="parameter"><code>widget</code></em>
and
must not be freed. </p>
<p><span class="annotation">[<acronym title="The data is owned by the callee, which is responsible of freeing it."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-reset-style"></a><h3>gtk_widget_reset_style ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_reset_style (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Updates the style context of <em class="parameter"><code>widget</code></em>
 and all descendants
by updating its widget path. <a href="GtkContainer.html#GtkContainer-struct"><span class="type">GtkContainers</span></a> may want
to use this on a child when reordering it in a way that a different
style might apply to it. See also <a class="link" href="GtkContainer.html#gtk-container-get-path-for-child" title="gtk_container_get_path_for_child ()"><code class="function">gtk_container_get_path_for_child()</code></a>.</p>
<div class="refsect3">
<a name="gtk-widget-reset-style.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-class-get-css-name"></a><h3>gtk_widget_class_get_css_name ()</h3>
<pre class="programlisting">const <span class="returnvalue">char</span> *
gtk_widget_class_get_css_name (<em class="parameter"><code><a class="link" href="GtkWidget.html#GtkWidgetClass" title="struct GtkWidgetClass"><span class="type">GtkWidgetClass</span></a> *widget_class</code></em>);</pre>
<p>Gets the name used by this class for matching in CSS code. See
<a class="link" href="GtkWidget.html#gtk-widget-class-set-css-name" title="gtk_widget_class_set_css_name ()"><code class="function">gtk_widget_class_set_css_name()</code></a> for details.</p>
<div class="refsect3">
<a name="gtk-widget-class-get-css-name.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget_class</p></td>
<td class="parameter_description"><p>class to set the name on</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-class-get-css-name.returns"></a><h4>Returns</h4>
<p> the CSS name of the given class</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-20.html#api-index-3.20">3.20</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-class-set-css-name"></a><h3>gtk_widget_class_set_css_name ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_class_set_css_name (<em class="parameter"><code><a class="link" href="GtkWidget.html#GtkWidgetClass" title="struct GtkWidgetClass"><span class="type">GtkWidgetClass</span></a> *widget_class</code></em>,
                               <em class="parameter"><code>const <span class="type">char</span> *name</code></em>);</pre>
<p>Sets the name to be used for CSS matching of widgets.</p>
<p>If this function is not called for a given class, the name
of the parent class is used.</p>
<div class="refsect3">
<a name="gtk-widget-class-set-css-name.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget_class</p></td>
<td class="parameter_description"><p>class to set the name on</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>name</p></td>
<td class="parameter_description"><p>name to use</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-20.html#api-index-3.20">3.20</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-requisition-new"></a><h3>gtk_requisition_new ()</h3>
<pre class="programlisting"><a class="link" href="GtkWidget.html#GtkRequisition"><span class="returnvalue">GtkRequisition</span></a> *
gtk_requisition_new (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
<p>Allocates a new <a class="link" href="GtkWidget.html#GtkRequisition-struct" title="GtkRequisition"><span class="type">GtkRequisition</span></a> and initializes its elements to zero.</p>
<div class="refsect3">
<a name="gtk-requisition-new.returns"></a><h4>Returns</h4>
<p> a new empty <a class="link" href="GtkWidget.html#GtkRequisition"><span class="type">GtkRequisition</span></a>. The newly allocated <a class="link" href="GtkWidget.html#GtkRequisition"><span class="type">GtkRequisition</span></a> should
be freed with <a class="link" href="GtkWidget.html#gtk-requisition-free" title="gtk_requisition_free ()"><code class="function">gtk_requisition_free()</code></a>.</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-requisition-copy"></a><h3>gtk_requisition_copy ()</h3>
<pre class="programlisting"><a class="link" href="GtkWidget.html#GtkRequisition"><span class="returnvalue">GtkRequisition</span></a> *
gtk_requisition_copy (<em class="parameter"><code>const <a class="link" href="GtkWidget.html#GtkRequisition"><span class="type">GtkRequisition</span></a> *requisition</code></em>);</pre>
<p>Copies a <a class="link" href="GtkWidget.html#GtkRequisition"><span class="type">GtkRequisition</span></a>.</p>
<div class="refsect3">
<a name="gtk-requisition-copy.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>requisition</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html#GtkRequisition"><span class="type">GtkRequisition</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-requisition-copy.returns"></a><h4>Returns</h4>
<p> a copy of <em class="parameter"><code>requisition</code></em>
</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-requisition-free"></a><h3>gtk_requisition_free ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_requisition_free (<em class="parameter"><code><a class="link" href="GtkWidget.html#GtkRequisition"><span class="type">GtkRequisition</span></a> *requisition</code></em>);</pre>
<p>Frees a <a class="link" href="GtkWidget.html#GtkRequisition"><span class="type">GtkRequisition</span></a>.</p>
<div class="refsect3">
<a name="gtk-requisition-free.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>requisition</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html#GtkRequisition"><span class="type">GtkRequisition</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-preferred-height"></a><h3>gtk_widget_get_preferred_height ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_get_preferred_height (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                 <em class="parameter"><code><span class="type">gint</span> *minimum_height</code></em>,
                                 <em class="parameter"><code><span class="type">gint</span> *natural_height</code></em>);</pre>
<p>Retrieves a widget’s initial minimum and natural height.</p>
<p>This call is specific to width-for-height requests.</p>
<p>The returned request will be modified by the
GtkWidgetClass::adjust_size_request virtual method and by any
<a href="GtkSizeGroup.html#GtkSizeGroup-struct"><span class="type">GtkSizeGroups</span></a> that have been applied. That is, the returned request
is the one that should be used for layout, not necessarily the one
returned by the widget itself.</p>
<div class="refsect3">
<a name="gtk-widget-get-preferred-height.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> instance</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>minimum_height</p></td>
<td class="parameter_description"><p>location to store the minimum height, or <code class="literal">NULL</code>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>natural_height</p></td>
<td class="parameter_description"><p>location to store the natural height, or <code class="literal">NULL</code>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-preferred-width"></a><h3>gtk_widget_get_preferred_width ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_get_preferred_width (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                <em class="parameter"><code><span class="type">gint</span> *minimum_width</code></em>,
                                <em class="parameter"><code><span class="type">gint</span> *natural_width</code></em>);</pre>
<p>Retrieves a widget’s initial minimum and natural width.</p>
<p>This call is specific to height-for-width requests.</p>
<p>The returned request will be modified by the
GtkWidgetClass::adjust_size_request virtual method and by any
<a href="GtkSizeGroup.html#GtkSizeGroup-struct"><span class="type">GtkSizeGroups</span></a> that have been applied. That is, the returned request
is the one that should be used for layout, not necessarily the one
returned by the widget itself.</p>
<div class="refsect3">
<a name="gtk-widget-get-preferred-width.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> instance</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>minimum_width</p></td>
<td class="parameter_description"><p>location to store the minimum width, or <code class="literal">NULL</code>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>natural_width</p></td>
<td class="parameter_description"><p>location to store the natural width, or <code class="literal">NULL</code>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-preferred-height-for-width"></a><h3>gtk_widget_get_preferred_height_for_width ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_get_preferred_height_for_width
                               (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                <em class="parameter"><code><span class="type">gint</span> width</code></em>,
                                <em class="parameter"><code><span class="type">gint</span> *minimum_height</code></em>,
                                <em class="parameter"><code><span class="type">gint</span> *natural_height</code></em>);</pre>
<p>Retrieves a widget’s minimum and natural height if it would be given
the specified <em class="parameter"><code>width</code></em>
.</p>
<p>The returned request will be modified by the
GtkWidgetClass::adjust_size_request virtual method and by any
<a href="GtkSizeGroup.html#GtkSizeGroup-struct"><span class="type">GtkSizeGroups</span></a> that have been applied. That is, the returned request
is the one that should be used for layout, not necessarily the one
returned by the widget itself.</p>
<div class="refsect3">
<a name="gtk-widget-get-preferred-height-for-width.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> instance</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>width</p></td>
<td class="parameter_description"><p>the width which is available for allocation</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>minimum_height</p></td>
<td class="parameter_description"><p>location for storing the minimum height, or <code class="literal">NULL</code>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>natural_height</p></td>
<td class="parameter_description"><p>location for storing the natural height, or <code class="literal">NULL</code>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-preferred-width-for-height"></a><h3>gtk_widget_get_preferred_width_for_height ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_get_preferred_width_for_height
                               (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                <em class="parameter"><code><span class="type">gint</span> height</code></em>,
                                <em class="parameter"><code><span class="type">gint</span> *minimum_width</code></em>,
                                <em class="parameter"><code><span class="type">gint</span> *natural_width</code></em>);</pre>
<p>Retrieves a widget’s minimum and natural width if it would be given
the specified <em class="parameter"><code>height</code></em>
.</p>
<p>The returned request will be modified by the
GtkWidgetClass::adjust_size_request virtual method and by any
<a href="GtkSizeGroup.html#GtkSizeGroup-struct"><span class="type">GtkSizeGroups</span></a> that have been applied. That is, the returned request
is the one that should be used for layout, not necessarily the one
returned by the widget itself.</p>
<div class="refsect3">
<a name="gtk-widget-get-preferred-width-for-height.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> instance</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>height</p></td>
<td class="parameter_description"><p>the height which is available for allocation</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>minimum_width</p></td>
<td class="parameter_description"><p>location for storing the minimum width, or <code class="literal">NULL</code>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>natural_width</p></td>
<td class="parameter_description"><p>location for storing the natural width, or <code class="literal">NULL</code>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-preferred-height-and-baseline-for-width"></a><h3>gtk_widget_get_preferred_height_and_baseline_for_width ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_get_preferred_height_and_baseline_for_width
                               (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                                <em class="parameter"><code><span class="type">gint</span> width</code></em>,
                                <em class="parameter"><code><span class="type">gint</span> *minimum_height</code></em>,
                                <em class="parameter"><code><span class="type">gint</span> *natural_height</code></em>,
                                <em class="parameter"><code><span class="type">gint</span> *minimum_baseline</code></em>,
                                <em class="parameter"><code><span class="type">gint</span> *natural_baseline</code></em>);</pre>
<p>Retrieves a widget’s minimum and natural height and the corresponding baselines if it would be given
the specified <em class="parameter"><code>width</code></em>
, or the default height if <em class="parameter"><code>width</code></em>
 is -1. The baselines may be -1 which means
that no baseline is requested for this widget.</p>
<p>The returned request will be modified by the
GtkWidgetClass::adjust_size_request and GtkWidgetClass::adjust_baseline_request virtual methods
and by any <a href="GtkSizeGroup.html#GtkSizeGroup-struct"><span class="type">GtkSizeGroups</span></a> that have been applied. That is, the returned request
is the one that should be used for layout, not necessarily the one
returned by the widget itself.</p>
<div class="refsect3">
<a name="gtk-widget-get-preferred-height-and-baseline-for-width.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> instance</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>width</p></td>
<td class="parameter_description"><p>the width which is available for allocation, or -1 if none</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>minimum_height</p></td>
<td class="parameter_description"><p>location for storing the minimum height, or <code class="literal">NULL</code>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>natural_height</p></td>
<td class="parameter_description"><p>location for storing the natural height, or <code class="literal">NULL</code>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>minimum_baseline</p></td>
<td class="parameter_description"><p>location for storing the baseline for the minimum height, or <code class="literal">NULL</code>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>natural_baseline</p></td>
<td class="parameter_description"><p>location for storing the baseline for the natural height, or <code class="literal">NULL</code>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-10.html#api-index-3.10">3.10</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-request-mode"></a><h3>gtk_widget_get_request_mode ()</h3>
<pre class="programlisting"><a class="link" href="GtkWidget.html#GtkSizeRequestMode" title="enum GtkSizeRequestMode"><span class="returnvalue">GtkSizeRequestMode</span></a>
gtk_widget_get_request_mode (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Gets whether the widget prefers a height-for-width layout
or a width-for-height layout.</p>
<p><a class="link" href="GtkBin.html" title="GtkBin"><span class="type">GtkBin</span></a> widgets generally propagate the preference of
their child, container widgets need to request something either in
context of their children or in context of their allocation
capabilities.</p>
<div class="refsect3">
<a name="gtk-widget-get-request-mode.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> instance</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-request-mode.returns"></a><h4>Returns</h4>
<p> The <a class="link" href="GtkWidget.html#GtkSizeRequestMode" title="enum GtkSizeRequestMode"><span class="type">GtkSizeRequestMode</span></a> preferred by <em class="parameter"><code>widget</code></em>
.</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-preferred-size"></a><h3>gtk_widget_get_preferred_size ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_get_preferred_size (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                               <em class="parameter"><code><a class="link" href="GtkWidget.html#GtkRequisition"><span class="type">GtkRequisition</span></a> *minimum_size</code></em>,
                               <em class="parameter"><code><a class="link" href="GtkWidget.html#GtkRequisition"><span class="type">GtkRequisition</span></a> *natural_size</code></em>);</pre>
<p>Retrieves the minimum and natural size of a widget, taking
into account the widget’s preference for height-for-width management.</p>
<p>This is used to retrieve a suitable size by container widgets which do
not impose any restrictions on the child placement. It can be used
to deduce toplevel window and menu sizes as well as child widgets in
free-form containers such as GtkLayout.</p>
<p>Handle with care. Note that the natural height of a height-for-width
widget will generally be a smaller size than the minimum height, since the required
height for the natural width is generally smaller than the required height for
the minimum width.</p>
<p>Use <a class="link" href="GtkWidget.html#gtk-widget-get-preferred-height-and-baseline-for-width" title="gtk_widget_get_preferred_height_and_baseline_for_width ()"><code class="function">gtk_widget_get_preferred_height_and_baseline_for_width()</code></a> if you want to support
baseline alignment.</p>
<div class="refsect3">
<a name="gtk-widget-get-preferred-size.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> instance</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>minimum_size</p></td>
<td class="parameter_description"><p>location for storing the minimum size, or <code class="literal">NULL</code>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>natural_size</p></td>
<td class="parameter_description"><p>location for storing the natural size, or <code class="literal">NULL</code>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-distribute-natural-allocation"></a><h3>gtk_distribute_natural_allocation ()</h3>
<pre class="programlisting"><span class="returnvalue">gint</span>
gtk_distribute_natural_allocation (<em class="parameter"><code><span class="type">gint</span> extra_space</code></em>,
                                   <em class="parameter"><code><span class="type">guint</span> n_requested_sizes</code></em>,
                                   <em class="parameter"><code><a class="link" href="GtkWidget.html#GtkRequestedSize" title="struct GtkRequestedSize"><span class="type">GtkRequestedSize</span></a> *sizes</code></em>);</pre>
<p>Distributes <em class="parameter"><code>extra_space</code></em>
 to child <em class="parameter"><code>sizes</code></em>
 by bringing smaller
children up to natural size first.</p>
<p>The remaining space will be added to the <em class="parameter"><code>minimum_size</code></em>
 member of the
GtkRequestedSize struct. If all sizes reach their natural size then
the remaining space is returned.</p>
<div class="refsect3">
<a name="gtk-distribute-natural-allocation.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>extra_space</p></td>
<td class="parameter_description"><p>Extra space to redistribute among children after subtracting
minimum sizes and any child padding from the overall allocation</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>n_requested_sizes</p></td>
<td class="parameter_description"><p>Number of requests to fit into the allocation</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>sizes</p></td>
<td class="parameter_description"><p>An array of structs with a client pointer and a minimum/natural size
in the orientation of the allocation.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-distribute-natural-allocation.returns"></a><h4>Returns</h4>
<p> The remainder of <em class="parameter"><code>extra_space</code></em>
after redistributing space
to <em class="parameter"><code>sizes</code></em>
.</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-halign"></a><h3>gtk_widget_get_halign ()</h3>
<pre class="programlisting"><a class="link" href="GtkWidget.html#GtkAlign" title="enum GtkAlign"><span class="returnvalue">GtkAlign</span></a>
gtk_widget_get_halign (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Gets the value of the <a class="link" href="GtkWidget.html#GtkWidget--halign" title="The “halign” property"><span class="type">“halign”</span></a> property.</p>
<p>For backwards compatibility reasons this method will never return
<a class="link" href="GtkWidget.html#GTK-ALIGN-BASELINE:CAPS"><code class="literal">GTK_ALIGN_BASELINE</code></a>, but instead it will convert it to
<a class="link" href="GtkWidget.html#GTK-ALIGN-FILL:CAPS"><code class="literal">GTK_ALIGN_FILL</code></a>. Baselines are not supported for horizontal
alignment.</p>
<div class="refsect3">
<a name="gtk-widget-get-halign.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-halign.returns"></a><h4>Returns</h4>
<p> the horizontal alignment of <em class="parameter"><code>widget</code></em>
</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-halign"></a><h3>gtk_widget_set_halign ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_set_halign (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                       <em class="parameter"><code><a class="link" href="GtkWidget.html#GtkAlign" title="enum GtkAlign"><span class="type">GtkAlign</span></a> align</code></em>);</pre>
<p>Sets the horizontal alignment of <em class="parameter"><code>widget</code></em>
.
See the <a class="link" href="GtkWidget.html#GtkWidget--halign" title="The “halign” property"><span class="type">“halign”</span></a> property.</p>
<div class="refsect3">
<a name="gtk-widget-set-halign.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>align</p></td>
<td class="parameter_description"><p>the horizontal alignment</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-valign"></a><h3>gtk_widget_get_valign ()</h3>
<pre class="programlisting"><a class="link" href="GtkWidget.html#GtkAlign" title="enum GtkAlign"><span class="returnvalue">GtkAlign</span></a>
gtk_widget_get_valign (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Gets the value of the <a class="link" href="GtkWidget.html#GtkWidget--valign" title="The “valign” property"><span class="type">“valign”</span></a> property.</p>
<p>For backwards compatibility reasons this method will never return
<a class="link" href="GtkWidget.html#GTK-ALIGN-BASELINE:CAPS"><code class="literal">GTK_ALIGN_BASELINE</code></a>, but instead it will convert it to
<a class="link" href="GtkWidget.html#GTK-ALIGN-FILL:CAPS"><code class="literal">GTK_ALIGN_FILL</code></a>. If your widget want to support baseline aligned
children it must use <a class="link" href="GtkWidget.html#gtk-widget-get-valign-with-baseline" title="gtk_widget_get_valign_with_baseline ()"><code class="function">gtk_widget_get_valign_with_baseline()</code></a>, or
<code class="literal">g_object_get (widget, "valign", &amp;amp;value, NULL)</code>, which will
also report the true value.</p>
<div class="refsect3">
<a name="gtk-widget-get-valign.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-valign.returns"></a><h4>Returns</h4>
<p> the vertical alignment of <em class="parameter"><code>widget</code></em>
, ignoring baseline alignment</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-valign-with-baseline"></a><h3>gtk_widget_get_valign_with_baseline ()</h3>
<pre class="programlisting"><a class="link" href="GtkWidget.html#GtkAlign" title="enum GtkAlign"><span class="returnvalue">GtkAlign</span></a>
gtk_widget_get_valign_with_baseline (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Gets the value of the <a class="link" href="GtkWidget.html#GtkWidget--valign" title="The “valign” property"><span class="type">“valign”</span></a> property, including
<a class="link" href="GtkWidget.html#GTK-ALIGN-BASELINE:CAPS"><code class="literal">GTK_ALIGN_BASELINE</code></a>.</p>
<div class="refsect3">
<a name="gtk-widget-get-valign-with-baseline.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-valign-with-baseline.returns"></a><h4>Returns</h4>
<p> the vertical alignment of <em class="parameter"><code>widget</code></em>
</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-10.html#api-index-3.10">3.10</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-valign"></a><h3>gtk_widget_set_valign ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_set_valign (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                       <em class="parameter"><code><a class="link" href="GtkWidget.html#GtkAlign" title="enum GtkAlign"><span class="type">GtkAlign</span></a> align</code></em>);</pre>
<p>Sets the vertical alignment of <em class="parameter"><code>widget</code></em>
.
See the <a class="link" href="GtkWidget.html#GtkWidget--valign" title="The “valign” property"><span class="type">“valign”</span></a> property.</p>
<div class="refsect3">
<a name="gtk-widget-set-valign.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>align</p></td>
<td class="parameter_description"><p>the vertical alignment</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-margin-left"></a><h3>gtk_widget_get_margin_left ()</h3>
<pre class="programlisting"><span class="returnvalue">gint</span>
gtk_widget_get_margin_left (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<div class="warning">
<p><code class="literal">gtk_widget_get_margin_left</code> has been deprecated since version 3.12 and should not be used in newly-written code.</p>
<p>Use <a class="link" href="GtkWidget.html#gtk-widget-get-margin-start" title="gtk_widget_get_margin_start ()"><code class="function">gtk_widget_get_margin_start()</code></a> instead.</p>
</div>
<p>Gets the value of the <a class="link" href="GtkWidget.html#GtkWidget--margin-left" title="The “margin-left” property"><span class="type">“margin-left”</span></a> property.</p>
<div class="refsect3">
<a name="gtk-widget-get-margin-left.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-margin-left.returns"></a><h4>Returns</h4>
<p> The left margin of <em class="parameter"><code>widget</code></em>
</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-margin-left"></a><h3>gtk_widget_set_margin_left ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_set_margin_left (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                            <em class="parameter"><code><span class="type">gint</span> margin</code></em>);</pre>
<div class="warning">
<p><code class="literal">gtk_widget_set_margin_left</code> has been deprecated since version 3.12 and should not be used in newly-written code.</p>
<p>Use <a class="link" href="GtkWidget.html#gtk-widget-set-margin-start" title="gtk_widget_set_margin_start ()"><code class="function">gtk_widget_set_margin_start()</code></a> instead.</p>
</div>
<p>Sets the left margin of <em class="parameter"><code>widget</code></em>
.
See the <a class="link" href="GtkWidget.html#GtkWidget--margin-left" title="The “margin-left” property"><span class="type">“margin-left”</span></a> property.</p>
<div class="refsect3">
<a name="gtk-widget-set-margin-left.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>margin</p></td>
<td class="parameter_description"><p>the left margin</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-margin-right"></a><h3>gtk_widget_get_margin_right ()</h3>
<pre class="programlisting"><span class="returnvalue">gint</span>
gtk_widget_get_margin_right (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<div class="warning">
<p><code class="literal">gtk_widget_get_margin_right</code> has been deprecated since version 3.12 and should not be used in newly-written code.</p>
<p>Use <a class="link" href="GtkWidget.html#gtk-widget-get-margin-end" title="gtk_widget_get_margin_end ()"><code class="function">gtk_widget_get_margin_end()</code></a> instead.</p>
</div>
<p>Gets the value of the <a class="link" href="GtkWidget.html#GtkWidget--margin-right" title="The “margin-right” property"><span class="type">“margin-right”</span></a> property.</p>
<div class="refsect3">
<a name="gtk-widget-get-margin-right.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-margin-right.returns"></a><h4>Returns</h4>
<p> The right margin of <em class="parameter"><code>widget</code></em>
</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-margin-right"></a><h3>gtk_widget_set_margin_right ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_set_margin_right (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                             <em class="parameter"><code><span class="type">gint</span> margin</code></em>);</pre>
<div class="warning">
<p><code class="literal">gtk_widget_set_margin_right</code> has been deprecated since version 3.12 and should not be used in newly-written code.</p>
<p>Use <a class="link" href="GtkWidget.html#gtk-widget-set-margin-end" title="gtk_widget_set_margin_end ()"><code class="function">gtk_widget_set_margin_end()</code></a> instead.</p>
</div>
<p>Sets the right margin of <em class="parameter"><code>widget</code></em>
.
See the <a class="link" href="GtkWidget.html#GtkWidget--margin-right" title="The “margin-right” property"><span class="type">“margin-right”</span></a> property.</p>
<div class="refsect3">
<a name="gtk-widget-set-margin-right.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>margin</p></td>
<td class="parameter_description"><p>the right margin</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-margin-start"></a><h3>gtk_widget_get_margin_start ()</h3>
<pre class="programlisting"><span class="returnvalue">gint</span>
gtk_widget_get_margin_start (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Gets the value of the <a class="link" href="GtkWidget.html#GtkWidget--margin-start" title="The “margin-start” property"><span class="type">“margin-start”</span></a> property.</p>
<div class="refsect3">
<a name="gtk-widget-get-margin-start.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-margin-start.returns"></a><h4>Returns</h4>
<p> The start margin of <em class="parameter"><code>widget</code></em>
</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-12.html#api-index-3.12">3.12</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-margin-start"></a><h3>gtk_widget_set_margin_start ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_set_margin_start (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                             <em class="parameter"><code><span class="type">gint</span> margin</code></em>);</pre>
<p>Sets the start margin of <em class="parameter"><code>widget</code></em>
.
See the <a class="link" href="GtkWidget.html#GtkWidget--margin-start" title="The “margin-start” property"><span class="type">“margin-start”</span></a> property.</p>
<div class="refsect3">
<a name="gtk-widget-set-margin-start.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>margin</p></td>
<td class="parameter_description"><p>the start margin</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-12.html#api-index-3.12">3.12</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-margin-end"></a><h3>gtk_widget_get_margin_end ()</h3>
<pre class="programlisting"><span class="returnvalue">gint</span>
gtk_widget_get_margin_end (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Gets the value of the <a class="link" href="GtkWidget.html#GtkWidget--margin-end" title="The “margin-end” property"><span class="type">“margin-end”</span></a> property.</p>
<div class="refsect3">
<a name="gtk-widget-get-margin-end.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-margin-end.returns"></a><h4>Returns</h4>
<p> The end margin of <em class="parameter"><code>widget</code></em>
</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-12.html#api-index-3.12">3.12</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-margin-end"></a><h3>gtk_widget_set_margin_end ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_set_margin_end (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                           <em class="parameter"><code><span class="type">gint</span> margin</code></em>);</pre>
<p>Sets the end margin of <em class="parameter"><code>widget</code></em>
.
See the <a class="link" href="GtkWidget.html#GtkWidget--margin-end" title="The “margin-end” property"><span class="type">“margin-end”</span></a> property.</p>
<div class="refsect3">
<a name="gtk-widget-set-margin-end.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>margin</p></td>
<td class="parameter_description"><p>the end margin</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-12.html#api-index-3.12">3.12</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-margin-top"></a><h3>gtk_widget_get_margin_top ()</h3>
<pre class="programlisting"><span class="returnvalue">gint</span>
gtk_widget_get_margin_top (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Gets the value of the <a class="link" href="GtkWidget.html#GtkWidget--margin-top" title="The “margin-top” property"><span class="type">“margin-top”</span></a> property.</p>
<div class="refsect3">
<a name="gtk-widget-get-margin-top.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-margin-top.returns"></a><h4>Returns</h4>
<p> The top margin of <em class="parameter"><code>widget</code></em>
</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-margin-top"></a><h3>gtk_widget_set_margin_top ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_set_margin_top (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                           <em class="parameter"><code><span class="type">gint</span> margin</code></em>);</pre>
<p>Sets the top margin of <em class="parameter"><code>widget</code></em>
.
See the <a class="link" href="GtkWidget.html#GtkWidget--margin-top" title="The “margin-top” property"><span class="type">“margin-top”</span></a> property.</p>
<div class="refsect3">
<a name="gtk-widget-set-margin-top.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>margin</p></td>
<td class="parameter_description"><p>the top margin</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-margin-bottom"></a><h3>gtk_widget_get_margin_bottom ()</h3>
<pre class="programlisting"><span class="returnvalue">gint</span>
gtk_widget_get_margin_bottom (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Gets the value of the <a class="link" href="GtkWidget.html#GtkWidget--margin-bottom" title="The “margin-bottom” property"><span class="type">“margin-bottom”</span></a> property.</p>
<div class="refsect3">
<a name="gtk-widget-get-margin-bottom.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-margin-bottom.returns"></a><h4>Returns</h4>
<p> The bottom margin of <em class="parameter"><code>widget</code></em>
</p>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-margin-bottom"></a><h3>gtk_widget_set_margin_bottom ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_set_margin_bottom (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                              <em class="parameter"><code><span class="type">gint</span> margin</code></em>);</pre>
<p>Sets the bottom margin of <em class="parameter"><code>widget</code></em>
.
See the <a class="link" href="GtkWidget.html#GtkWidget--margin-bottom" title="The “margin-bottom” property"><span class="type">“margin-bottom”</span></a> property.</p>
<div class="refsect3">
<a name="gtk-widget-set-margin-bottom.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>margin</p></td>
<td class="parameter_description"><p>the bottom margin</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-hexpand"></a><h3>gtk_widget_get_hexpand ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_widget_get_hexpand (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Gets whether the widget would like any available extra horizontal
space. When a user resizes a <a class="link" href="GtkWindow.html" title="GtkWindow"><span class="type">GtkWindow</span></a>, widgets with expand=TRUE
generally receive the extra space. For example, a list or
scrollable area or document in your window would often be set to
expand.</p>
<p>Containers should use <a class="link" href="GtkWidget.html#gtk-widget-compute-expand" title="gtk_widget_compute_expand ()"><code class="function">gtk_widget_compute_expand()</code></a> rather than
this function, to see whether a widget, or any of its children,
has the expand flag set. If any child of a widget wants to
expand, the parent may ask to expand also.</p>
<p>This function only looks at the widget’s own hexpand flag, rather
than computing whether the entire widget tree rooted at this widget
wants to expand.</p>
<div class="refsect3">
<a name="gtk-widget-get-hexpand.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the widget</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-hexpand.returns"></a><h4>Returns</h4>
<p> whether hexpand flag is set</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-hexpand"></a><h3>gtk_widget_set_hexpand ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_set_hexpand (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                        <em class="parameter"><code><span class="type">gboolean</span> expand</code></em>);</pre>
<p>Sets whether the widget would like any available extra horizontal
space. When a user resizes a <a class="link" href="GtkWindow.html" title="GtkWindow"><span class="type">GtkWindow</span></a>, widgets with expand=TRUE
generally receive the extra space. For example, a list or
scrollable area or document in your window would often be set to
expand.</p>
<p>Call this function to set the expand flag if you would like your
widget to become larger horizontally when the window has extra
room.</p>
<p>By default, widgets automatically expand if any of their children
want to expand. (To see if a widget will automatically expand given
its current children and state, call <a class="link" href="GtkWidget.html#gtk-widget-compute-expand" title="gtk_widget_compute_expand ()"><code class="function">gtk_widget_compute_expand()</code></a>. A
container can decide how the expandability of children affects the
expansion of the container by overriding the compute_expand virtual
method on <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a>.).</p>
<p>Setting hexpand explicitly with this function will override the
automatic expand behavior.</p>
<p>This function forces the widget to expand or not to expand,
regardless of children.  The override occurs because
<a class="link" href="GtkWidget.html#gtk-widget-set-hexpand" title="gtk_widget_set_hexpand ()"><code class="function">gtk_widget_set_hexpand()</code></a> sets the hexpand-set property (see
<a class="link" href="GtkWidget.html#gtk-widget-set-hexpand-set" title="gtk_widget_set_hexpand_set ()"><code class="function">gtk_widget_set_hexpand_set()</code></a>) which causes the widget’s hexpand
value to be used, rather than looking at children and widget state.</p>
<div class="refsect3">
<a name="gtk-widget-set-hexpand.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the widget</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>expand</p></td>
<td class="parameter_description"><p>whether to expand</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-hexpand-set"></a><h3>gtk_widget_get_hexpand_set ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_widget_get_hexpand_set (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Gets whether <a class="link" href="GtkWidget.html#gtk-widget-set-hexpand" title="gtk_widget_set_hexpand ()"><code class="function">gtk_widget_set_hexpand()</code></a> has been used to
explicitly set the expand flag on this widget.</p>
<p>If hexpand is set, then it overrides any computed
expand value based on child widgets. If hexpand is not
set, then the expand value depends on whether any
children of the widget would like to expand.</p>
<p>There are few reasons to use this function, but it’s here
for completeness and consistency.</p>
<div class="refsect3">
<a name="gtk-widget-get-hexpand-set.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the widget</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-hexpand-set.returns"></a><h4>Returns</h4>
<p> whether hexpand has been explicitly set</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-hexpand-set"></a><h3>gtk_widget_set_hexpand_set ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_set_hexpand_set (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                            <em class="parameter"><code><span class="type">gboolean</span> set</code></em>);</pre>
<p>Sets whether the hexpand flag (see <a class="link" href="GtkWidget.html#gtk-widget-get-hexpand" title="gtk_widget_get_hexpand ()"><code class="function">gtk_widget_get_hexpand()</code></a>) will
be used.</p>
<p>The hexpand-set property will be set automatically when you call
<a class="link" href="GtkWidget.html#gtk-widget-set-hexpand" title="gtk_widget_set_hexpand ()"><code class="function">gtk_widget_set_hexpand()</code></a> to set hexpand, so the most likely
reason to use this function would be to unset an explicit expand
flag.</p>
<p>If hexpand is set, then it overrides any computed
expand value based on child widgets. If hexpand is not
set, then the expand value depends on whether any
children of the widget would like to expand.</p>
<p>There are few reasons to use this function, but it’s here
for completeness and consistency.</p>
<div class="refsect3">
<a name="gtk-widget-set-hexpand-set.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the widget</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>set</p></td>
<td class="parameter_description"><p>value for hexpand-set property</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-vexpand"></a><h3>gtk_widget_get_vexpand ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_widget_get_vexpand (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Gets whether the widget would like any available extra vertical
space.</p>
<p>See <a class="link" href="GtkWidget.html#gtk-widget-get-hexpand" title="gtk_widget_get_hexpand ()"><code class="function">gtk_widget_get_hexpand()</code></a> for more detail.</p>
<div class="refsect3">
<a name="gtk-widget-get-vexpand.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the widget</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-vexpand.returns"></a><h4>Returns</h4>
<p> whether vexpand flag is set</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-vexpand"></a><h3>gtk_widget_set_vexpand ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_set_vexpand (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                        <em class="parameter"><code><span class="type">gboolean</span> expand</code></em>);</pre>
<p>Sets whether the widget would like any available extra vertical
space.</p>
<p>See <a class="link" href="GtkWidget.html#gtk-widget-set-hexpand" title="gtk_widget_set_hexpand ()"><code class="function">gtk_widget_set_hexpand()</code></a> for more detail.</p>
<div class="refsect3">
<a name="gtk-widget-set-vexpand.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the widget</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>expand</p></td>
<td class="parameter_description"><p>whether to expand</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-vexpand-set"></a><h3>gtk_widget_get_vexpand_set ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_widget_get_vexpand_set (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Gets whether <a class="link" href="GtkWidget.html#gtk-widget-set-vexpand" title="gtk_widget_set_vexpand ()"><code class="function">gtk_widget_set_vexpand()</code></a> has been used to
explicitly set the expand flag on this widget.</p>
<p>See <a class="link" href="GtkWidget.html#gtk-widget-get-hexpand-set" title="gtk_widget_get_hexpand_set ()"><code class="function">gtk_widget_get_hexpand_set()</code></a> for more detail.</p>
<div class="refsect3">
<a name="gtk-widget-get-vexpand-set.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the widget</p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-vexpand-set.returns"></a><h4>Returns</h4>
<p> whether vexpand has been explicitly set</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-set-vexpand-set"></a><h3>gtk_widget_set_vexpand_set ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_set_vexpand_set (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                            <em class="parameter"><code><span class="type">gboolean</span> set</code></em>);</pre>
<p>Sets whether the vexpand flag (see <a class="link" href="GtkWidget.html#gtk-widget-get-vexpand" title="gtk_widget_get_vexpand ()"><code class="function">gtk_widget_get_vexpand()</code></a>) will
be used.</p>
<p>See <a class="link" href="GtkWidget.html#gtk-widget-set-hexpand-set" title="gtk_widget_set_hexpand_set ()"><code class="function">gtk_widget_set_hexpand_set()</code></a> for more detail.</p>
<div class="refsect3">
<a name="gtk-widget-set-vexpand-set.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the widget</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>set</p></td>
<td class="parameter_description"><p>value for vexpand-set property</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-queue-compute-expand"></a><h3>gtk_widget_queue_compute_expand ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_queue_compute_expand (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Mark <em class="parameter"><code>widget</code></em>
 as needing to recompute its expand flags. Call
this function when setting legacy expand child properties
on the child of a container.</p>
<p>See <a class="link" href="GtkWidget.html#gtk-widget-compute-expand" title="gtk_widget_compute_expand ()"><code class="function">gtk_widget_compute_expand()</code></a>.</p>
<div class="refsect3">
<a name="gtk-widget-queue-compute-expand.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-compute-expand"></a><h3>gtk_widget_compute_expand ()</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
gtk_widget_compute_expand (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                           <em class="parameter"><code><a class="link" href="gtk3-Standard-Enumerations.html#GtkOrientation" title="enum GtkOrientation"><span class="type">GtkOrientation</span></a> orientation</code></em>);</pre>
<p>Computes whether a container should give this widget extra space
when possible. Containers should check this, rather than
looking at <a class="link" href="GtkWidget.html#gtk-widget-get-hexpand" title="gtk_widget_get_hexpand ()"><code class="function">gtk_widget_get_hexpand()</code></a> or <a class="link" href="GtkWidget.html#gtk-widget-get-vexpand" title="gtk_widget_get_vexpand ()"><code class="function">gtk_widget_get_vexpand()</code></a>.</p>
<p>This function already checks whether the widget is visible, so
visibility does not need to be checked separately. Non-visible
widgets are not expanded.</p>
<p>The computed expand value uses either the expand setting explicitly
set on the widget itself, or, if none has been explicitly set,
the widget may expand if some of its children do.</p>
<div class="refsect3">
<a name="gtk-widget-compute-expand.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the widget</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>orientation</p></td>
<td class="parameter_description"><p>expand direction</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-compute-expand.returns"></a><h4>Returns</h4>
<p> whether widget tree rooted here should be expanded</p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-init-template"></a><h3>gtk_widget_init_template ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_init_template (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>);</pre>
<p>Creates and initializes child widgets defined in templates. This
function must be called in the instance initializer for any
class which assigned itself a template using <a class="link" href="GtkWidget.html#gtk-widget-class-set-template" title="gtk_widget_class_set_template ()"><code class="function">gtk_widget_class_set_template()</code></a></p>
<p>It is important to call this function in the instance initializer
of a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> subclass and not in <code class="function">GObject.constructed()</code> or
<code class="function">GObject.constructor()</code> for two reasons.</p>
<p>One reason is that generally derived widgets will assume that parent
class composite widgets have been created in their instance
initializers.</p>
<p>Another reason is that when calling <code class="function">g_object_new()</code> on a widget with
composite templates, it’s important to build the composite widgets
before the construct properties are set. Properties passed to <code class="function">g_object_new()</code>
should take precedence over properties set in the private template XML.</p>
<div class="refsect3">
<a name="gtk-widget-init-template.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody><tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr></tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-10.html#api-index-3.10">3.10</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-class-set-template"></a><h3>gtk_widget_class_set_template ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_class_set_template (<em class="parameter"><code><a class="link" href="GtkWidget.html#GtkWidgetClass" title="struct GtkWidgetClass"><span class="type">GtkWidgetClass</span></a> *widget_class</code></em>,
                               <em class="parameter"><code><span class="type">GBytes</span> *template_bytes</code></em>);</pre>
<p>This should be called at class initialization time to specify
the GtkBuilder XML to be used to extend a widget.</p>
<p>For convenience, <a class="link" href="GtkWidget.html#gtk-widget-class-set-template-from-resource" title="gtk_widget_class_set_template_from_resource ()"><code class="function">gtk_widget_class_set_template_from_resource()</code></a> is also provided.</p>
<p>Note that any class that installs templates must call <a class="link" href="GtkWidget.html#gtk-widget-init-template" title="gtk_widget_init_template ()"><code class="function">gtk_widget_init_template()</code></a>
in the widget’s instance initializer.</p>
<div class="refsect3">
<a name="gtk-widget-class-set-template.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget_class</p></td>
<td class="parameter_description"><p>A <a class="link" href="GtkWidget.html#GtkWidgetClass" title="struct GtkWidgetClass"><span class="type">GtkWidgetClass</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>template_bytes</p></td>
<td class="parameter_description"><p>A <span class="type">GBytes</span> holding the <a class="link" href="GtkBuilder.html" title="GtkBuilder"><span class="type">GtkBuilder</span></a> XML </p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-10.html#api-index-3.10">3.10</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-class-set-template-from-resource"></a><h3>gtk_widget_class_set_template_from_resource ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_class_set_template_from_resource
                               (<em class="parameter"><code><a class="link" href="GtkWidget.html#GtkWidgetClass" title="struct GtkWidgetClass"><span class="type">GtkWidgetClass</span></a> *widget_class</code></em>,
                                <em class="parameter"><code>const <span class="type">gchar</span> *resource_name</code></em>);</pre>
<p>A convenience function to call <a class="link" href="GtkWidget.html#gtk-widget-class-set-template" title="gtk_widget_class_set_template ()"><code class="function">gtk_widget_class_set_template()</code></a>.</p>
<p>Note that any class that installs templates must call <a class="link" href="GtkWidget.html#gtk-widget-init-template" title="gtk_widget_init_template ()"><code class="function">gtk_widget_init_template()</code></a>
in the widget’s instance initializer.</p>
<div class="refsect3">
<a name="gtk-widget-class-set-template-from-resource.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget_class</p></td>
<td class="parameter_description"><p>A <a class="link" href="GtkWidget.html#GtkWidgetClass" title="struct GtkWidgetClass"><span class="type">GtkWidgetClass</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>resource_name</p></td>
<td class="parameter_description"><p>The name of the resource to load the template from</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-10.html#api-index-3.10">3.10</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-get-template-child"></a><h3>gtk_widget_get_template_child ()</h3>
<pre class="programlisting"><span class="returnvalue">GObject</span> *
gtk_widget_get_template_child (<em class="parameter"><code><a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget</code></em>,
                               <em class="parameter"><code><span class="type">GType</span> widget_type</code></em>,
                               <em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>);</pre>
<p>Fetch an object build from the template XML for <em class="parameter"><code>widget_type</code></em>
 in this <em class="parameter"><code>widget</code></em>
 instance.</p>
<p>This will only report children which were previously declared with
<a class="link" href="GtkWidget.html#gtk-widget-class-bind-template-child-full" title="gtk_widget_class_bind_template_child_full ()"><code class="function">gtk_widget_class_bind_template_child_full()</code></a> or one of its
variants.</p>
<p>This function is only meant to be called for code which is private to the <em class="parameter"><code>widget_type</code></em>
 which
declared the child and is meant for language bindings which cannot easily make use
of the GObject structure offsets.</p>
<div class="refsect3">
<a name="gtk-widget-get-template-child.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>A <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>widget_type</p></td>
<td class="parameter_description"><p>The <span class="type">GType</span> to get a template child for</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>name</p></td>
<td class="parameter_description"><p>The “id” of the child defined in the template XML</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="gtk-widget-get-template-child.returns"></a><h4>Returns</h4>
<p>The object built in the template XML with the id <em class="parameter"><code>name</code></em>
. </p>
<p><span class="annotation">[<acronym title="The data is owned by the callee, which is responsible of freeing it."><span class="acronym">transfer none</span></acronym>]</span></p>
</div>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-class-bind-template-child"></a><h3>gtk_widget_class_bind_template_child()</h3>
<pre class="programlisting">#define             gtk_widget_class_bind_template_child(widget_class, TypeName, member_name)</pre>
<p>Binds a child widget defined in a template to the <em class="parameter"><code>widget_class</code></em>
.</p>
<p>This macro is a convenience wrapper around the
<a class="link" href="GtkWidget.html#gtk-widget-class-bind-template-child-full" title="gtk_widget_class_bind_template_child_full ()"><code class="function">gtk_widget_class_bind_template_child_full()</code></a> function.</p>
<p>This macro will use the offset of the <em class="parameter"><code>member_name</code></em>
 inside the <em class="parameter"><code>TypeName</code></em>

instance structure.</p>
<div class="refsect3">
<a name="gtk-widget-class-bind-template-child.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget_class</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html#GtkWidgetClass" title="struct GtkWidgetClass"><span class="type">GtkWidgetClass</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>TypeName</p></td>
<td class="parameter_description"><p>the type name of this widget</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>member_name</p></td>
<td class="parameter_description"><p>name of the instance member in the instance struct for <em class="parameter"><code>data_type</code></em>
</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-10.html#api-index-3.10">3.10</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-class-bind-template-child-internal"></a><h3>gtk_widget_class_bind_template_child_internal()</h3>
<pre class="programlisting">#define             gtk_widget_class_bind_template_child_internal(widget_class, TypeName, member_name)</pre>
<p>Binds a child widget defined in a template to the <em class="parameter"><code>widget_class</code></em>
, and
also makes it available as an internal child in GtkBuilder, under the
name <em class="parameter"><code>member_name</code></em>
.</p>
<p>This macro is a convenience wrapper around the
<a class="link" href="GtkWidget.html#gtk-widget-class-bind-template-child-full" title="gtk_widget_class_bind_template_child_full ()"><code class="function">gtk_widget_class_bind_template_child_full()</code></a> function.</p>
<p>This macro will use the offset of the <em class="parameter"><code>member_name</code></em>
 inside the <em class="parameter"><code>TypeName</code></em>

instance structure.</p>
<div class="refsect3">
<a name="gtk-widget-class-bind-template-child-internal.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget_class</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html#GtkWidgetClass" title="struct GtkWidgetClass"><span class="type">GtkWidgetClass</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>TypeName</p></td>
<td class="parameter_description"><p>the type name, in CamelCase</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>member_name</p></td>
<td class="parameter_description"><p>name of the instance member in the instance struct for <em class="parameter"><code>data_type</code></em>
</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-10.html#api-index-3.10">3.10</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-class-bind-template-child-private"></a><h3>gtk_widget_class_bind_template_child_private()</h3>
<pre class="programlisting">#define             gtk_widget_class_bind_template_child_private(widget_class, TypeName, member_name)</pre>
<p>Binds a child widget defined in a template to the <em class="parameter"><code>widget_class</code></em>
.</p>
<p>This macro is a convenience wrapper around the
<a class="link" href="GtkWidget.html#gtk-widget-class-bind-template-child-full" title="gtk_widget_class_bind_template_child_full ()"><code class="function">gtk_widget_class_bind_template_child_full()</code></a> function.</p>
<p>This macro will use the offset of the <em class="parameter"><code>member_name</code></em>
 inside the <em class="parameter"><code>TypeName</code></em>

private data structure (it uses <code class="function">G_PRIVATE_OFFSET()</code>, so the private struct
must be added with <code class="function">G_ADD_PRIVATE()</code>).</p>
<div class="refsect3">
<a name="gtk-widget-class-bind-template-child-private.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget_class</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html#GtkWidgetClass" title="struct GtkWidgetClass"><span class="type">GtkWidgetClass</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>TypeName</p></td>
<td class="parameter_description"><p>the type name of this widget</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>member_name</p></td>
<td class="parameter_description"><p>name of the instance private member in the private struct for <em class="parameter"><code>data_type</code></em>
</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-10.html#api-index-3.10">3.10</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-class-bind-template-child-internal-private"></a><h3>gtk_widget_class_bind_template_child_internal_private()</h3>
<pre class="programlisting">#define             gtk_widget_class_bind_template_child_internal_private(widget_class, TypeName, member_name)</pre>
<p>Binds a child widget defined in a template to the <em class="parameter"><code>widget_class</code></em>
, and
also makes it available as an internal child in GtkBuilder, under the
name <em class="parameter"><code>member_name</code></em>
.</p>
<p>This macro is a convenience wrapper around the
<a class="link" href="GtkWidget.html#gtk-widget-class-bind-template-child-full" title="gtk_widget_class_bind_template_child_full ()"><code class="function">gtk_widget_class_bind_template_child_full()</code></a> function.</p>
<p>This macro will use the offset of the <em class="parameter"><code>member_name</code></em>
 inside the <em class="parameter"><code>TypeName</code></em>

private data structure.</p>
<div class="refsect3">
<a name="gtk-widget-class-bind-template-child-internal-private.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget_class</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html#GtkWidgetClass" title="struct GtkWidgetClass"><span class="type">GtkWidgetClass</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>TypeName</p></td>
<td class="parameter_description"><p>the type name, in CamelCase</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>member_name</p></td>
<td class="parameter_description"><p>name of the instance private member on the private struct for <em class="parameter"><code>data_type</code></em>
</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-10.html#api-index-3.10">3.10</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-class-bind-template-child-full"></a><h3>gtk_widget_class_bind_template_child_full ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_class_bind_template_child_full
                               (<em class="parameter"><code><a class="link" href="GtkWidget.html#GtkWidgetClass" title="struct GtkWidgetClass"><span class="type">GtkWidgetClass</span></a> *widget_class</code></em>,
                                <em class="parameter"><code>const <span class="type">gchar</span> *name</code></em>,
                                <em class="parameter"><code><span class="type">gboolean</span> internal_child</code></em>,
                                <em class="parameter"><code><span class="type">gssize</span> struct_offset</code></em>);</pre>
<p>Automatically assign an object declared in the class template XML to be set to a location
on a freshly built instance’s private data, or alternatively accessible via <a class="link" href="GtkWidget.html#gtk-widget-get-template-child" title="gtk_widget_get_template_child ()"><code class="function">gtk_widget_get_template_child()</code></a>.</p>
<p>The struct can point either into the public instance, then you should use G_STRUCT_OFFSET(WidgetType, member)
for <em class="parameter"><code>struct_offset</code></em>
,  or in the private struct, then you should use G_PRIVATE_OFFSET(WidgetType, member).</p>
<p>An explicit strong reference will be held automatically for the duration of your
instance’s life cycle, it will be released automatically when <code class="function">GObjectClass.dispose()</code> runs
on your instance and if a <em class="parameter"><code>struct_offset</code></em>
 that is != 0 is specified, then the automatic location
in your instance public or private data will be set to <code class="literal">NULL</code>. You can however access an automated child
pointer the first time your classes <code class="function">GObjectClass.dispose()</code> runs, or alternatively in
<a class="link" href="GtkWidget.html#GtkWidgetClass.destroy"><code class="function">GtkWidgetClass.destroy()</code></a>.</p>
<p>If <em class="parameter"><code>internal_child</code></em>
 is specified, <a class="link" href="GtkBuildable.html#GtkBuildableIface.get-internal-child"><code class="function">GtkBuildableIface.get_internal_child()</code></a> will be automatically
implemented by the <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> class so there is no need to implement it manually.</p>
<p>The wrapper macros <a class="link" href="GtkWidget.html#gtk-widget-class-bind-template-child" title="gtk_widget_class_bind_template_child()"><code class="function">gtk_widget_class_bind_template_child()</code></a>, <a class="link" href="GtkWidget.html#gtk-widget-class-bind-template-child-internal" title="gtk_widget_class_bind_template_child_internal()"><code class="function">gtk_widget_class_bind_template_child_internal()</code></a>,
<a class="link" href="GtkWidget.html#gtk-widget-class-bind-template-child-private" title="gtk_widget_class_bind_template_child_private()"><code class="function">gtk_widget_class_bind_template_child_private()</code></a> and <a class="link" href="GtkWidget.html#gtk-widget-class-bind-template-child-internal-private" title="gtk_widget_class_bind_template_child_internal_private()"><code class="function">gtk_widget_class_bind_template_child_internal_private()</code></a>
might be more convenient to use.</p>
<p>Note that this must be called from a composite widget classes class
initializer after calling <a class="link" href="GtkWidget.html#gtk-widget-class-set-template" title="gtk_widget_class_set_template ()"><code class="function">gtk_widget_class_set_template()</code></a>.</p>
<div class="refsect3">
<a name="gtk-widget-class-bind-template-child-full.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget_class</p></td>
<td class="parameter_description"><p>A <a class="link" href="GtkWidget.html#GtkWidgetClass" title="struct GtkWidgetClass"><span class="type">GtkWidgetClass</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>name</p></td>
<td class="parameter_description"><p>The “id” of the child defined in the template XML</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>internal_child</p></td>
<td class="parameter_description"><p>Whether the child should be accessible as an “internal-child”
when this class is used in GtkBuilder XML</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>struct_offset</p></td>
<td class="parameter_description"><p>The structure offset into the composite widget’s instance public or private structure
where the automated child pointer should be set, or 0 to not assign the pointer.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-10.html#api-index-3.10">3.10</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-class-bind-template-callback"></a><h3>gtk_widget_class_bind_template_callback()</h3>
<pre class="programlisting">#define             gtk_widget_class_bind_template_callback(widget_class, callback)</pre>
<p>Binds a callback function defined in a template to the <em class="parameter"><code>widget_class</code></em>
.</p>
<p>This macro is a convenience wrapper around the
<a class="link" href="GtkWidget.html#gtk-widget-class-bind-template-callback-full" title="gtk_widget_class_bind_template_callback_full ()"><code class="function">gtk_widget_class_bind_template_callback_full()</code></a> function.</p>
<div class="refsect3">
<a name="gtk-widget-class-bind-template-callback.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget_class</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkWidget.html#GtkWidgetClass" title="struct GtkWidgetClass"><span class="type">GtkWidgetClass</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>callback</p></td>
<td class="parameter_description"><p>the callback symbol</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-10.html#api-index-3.10">3.10</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-class-bind-template-callback-full"></a><h3>gtk_widget_class_bind_template_callback_full ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_class_bind_template_callback_full
                               (<em class="parameter"><code><a class="link" href="GtkWidget.html#GtkWidgetClass" title="struct GtkWidgetClass"><span class="type">GtkWidgetClass</span></a> *widget_class</code></em>,
                                <em class="parameter"><code>const <span class="type">gchar</span> *callback_name</code></em>,
                                <em class="parameter"><code><span class="type">GCallback</span> callback_symbol</code></em>);</pre>
<p>Declares a <em class="parameter"><code>callback_symbol</code></em>
 to handle <em class="parameter"><code>callback_name</code></em>
 from the template XML
defined for <em class="parameter"><code>widget_type</code></em>
. See <a class="link" href="GtkBuilder.html#gtk-builder-add-callback-symbol" title="gtk_builder_add_callback_symbol ()"><code class="function">gtk_builder_add_callback_symbol()</code></a>.</p>
<p>Note that this must be called from a composite widget classes class
initializer after calling <a class="link" href="GtkWidget.html#gtk-widget-class-set-template" title="gtk_widget_class_set_template ()"><code class="function">gtk_widget_class_set_template()</code></a>.</p>
<div class="refsect3">
<a name="gtk-widget-class-bind-template-callback-full.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget_class</p></td>
<td class="parameter_description"><p>A <a class="link" href="GtkWidget.html#GtkWidgetClass" title="struct GtkWidgetClass"><span class="type">GtkWidgetClass</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>callback_name</p></td>
<td class="parameter_description"><p>The name of the callback as expected in the template XML</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>callback_symbol</p></td>
<td class="parameter_description"><p>The callback symbol. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="The callback is valid until first called."><span class="acronym">scope async</span></acronym>]</span></td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-10.html#api-index-3.10">3.10</a></p>
</div>
<hr>
<div class="refsect2">
<a name="gtk-widget-class-set-connect-func"></a><h3>gtk_widget_class_set_connect_func ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
gtk_widget_class_set_connect_func (<em class="parameter"><code><a class="link" href="GtkWidget.html#GtkWidgetClass" title="struct GtkWidgetClass"><span class="type">GtkWidgetClass</span></a> *widget_class</code></em>,
                                   <em class="parameter"><code><a class="link" href="GtkBuilder.html#GtkBuilderConnectFunc" title="GtkBuilderConnectFunc ()"><span class="type">GtkBuilderConnectFunc</span></a> connect_func</code></em>,
                                   <em class="parameter"><code><span class="type">gpointer</span> connect_data</code></em>,
                                   <em class="parameter"><code><span class="type">GDestroyNotify</span> connect_data_destroy</code></em>);</pre>
<p>For use in language bindings, this will override the default <a class="link" href="GtkBuilder.html#GtkBuilderConnectFunc" title="GtkBuilderConnectFunc ()"><span class="type">GtkBuilderConnectFunc</span></a> to be
used when parsing GtkBuilder XML from this class’s template data.</p>
<p>Note that this must be called from a composite widget classes class
initializer after calling <a class="link" href="GtkWidget.html#gtk-widget-class-set-template" title="gtk_widget_class_set_template ()"><code class="function">gtk_widget_class_set_template()</code></a>.</p>
<div class="refsect3">
<a name="gtk-widget-class-set-connect-func.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget_class</p></td>
<td class="parameter_description"><p>A <a class="link" href="GtkWidget.html#GtkWidgetClass" title="struct GtkWidgetClass"><span class="type">GtkWidgetClass</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>connect_func</p></td>
<td class="parameter_description"><p>The <a class="link" href="GtkBuilder.html#GtkBuilderConnectFunc" title="GtkBuilderConnectFunc ()"><span class="type">GtkBuilderConnectFunc</span></a> to use when connecting signals in the class template</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>connect_data</p></td>
<td class="parameter_description"><p>The data to pass to <em class="parameter"><code>connect_func</code></em>
</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>connect_data_destroy</p></td>
<td class="parameter_description"><p>The <span class="type">GDestroyNotify</span> to free <em class="parameter"><code>connect_data</code></em>
, this will only be used at
class finalization time, when no classes of type <em class="parameter"><code>widget_type</code></em>
are in use anymore.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p class="since">Since: <a class="link" href="api-index-3-10.html#api-index-3.10">3.10</a></p>
</div>
</div>
<div class="refsect1">
<a name="GtkWidget.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
<a name="GtkWidget-struct"></a><h3>GtkWidget</h3>
<pre class="programlisting">typedef struct _GtkWidget GtkWidget;</pre>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidgetClass"></a><h3>struct GtkWidgetClass</h3>
<pre class="programlisting">struct GtkWidgetClass {
  GInitiallyUnownedClass parent_class;

  guint activate_signal;

  /* seldomly overidden */
  void (*dispatch_child_properties_changed) (GtkWidget   *widget,
					     guint        n_pspecs,
					     GParamSpec **pspecs);

  /* basics */
  void (* destroy)             (GtkWidget        *widget);
  void (* show)		       (GtkWidget        *widget);
  void (* show_all)            (GtkWidget        *widget);
  void (* hide)		       (GtkWidget        *widget);
  void (* map)		       (GtkWidget        *widget);
  void (* unmap)	       (GtkWidget        *widget);
  void (* realize)	       (GtkWidget        *widget);
  void (* unrealize)	       (GtkWidget        *widget);
  void (* size_allocate)       (GtkWidget        *widget,
				GtkAllocation    *allocation);
  void (* state_changed)       (GtkWidget        *widget,
				GtkStateType   	  previous_state);
  void (* state_flags_changed) (GtkWidget        *widget,
				GtkStateFlags  	  previous_state_flags);
  void (* parent_set)	       (GtkWidget        *widget,
				GtkWidget        *previous_parent);
  void (* hierarchy_changed)   (GtkWidget        *widget,
				GtkWidget        *previous_toplevel);
  void (* style_set)	       (GtkWidget        *widget,
				GtkStyle         *previous_style);
  void (* direction_changed)   (GtkWidget        *widget,
				GtkTextDirection  previous_direction);
  void (* grab_notify)         (GtkWidget        *widget,
				gboolean          was_grabbed);
  void (* child_notify)        (GtkWidget	 *widget,
				GParamSpec       *child_property);
  gboolean (* draw)	       (GtkWidget	 *widget,
                                cairo_t          *cr);

  /* size requests */
  GtkSizeRequestMode (* get_request_mode)               (GtkWidget      *widget);

  void               (* get_preferred_height)           (GtkWidget       *widget,
                                                         gint            *minimum_height,
                                                         gint            *natural_height);
  void               (* get_preferred_width_for_height) (GtkWidget       *widget,
                                                         gint             height,
                                                         gint            *minimum_width,
                                                         gint            *natural_width);
  void               (* get_preferred_width)            (GtkWidget       *widget,
                                                         gint            *minimum_width,
                                                         gint            *natural_width);
  void               (* get_preferred_height_for_width) (GtkWidget       *widget,
                                                         gint             width,
                                                         gint            *minimum_height,
                                                         gint            *natural_height);

  /* Mnemonics */
  gboolean (* mnemonic_activate)        (GtkWidget           *widget,
                                         gboolean             group_cycling);

  /* explicit focus */
  void     (* grab_focus)               (GtkWidget           *widget);
  gboolean (* focus)                    (GtkWidget           *widget,
                                         GtkDirectionType     direction);

  /* keyboard navigation */
  void     (* move_focus)               (GtkWidget           *widget,
                                         GtkDirectionType     direction);
  gboolean (* keynav_failed)            (GtkWidget           *widget,
                                         GtkDirectionType     direction);

  /* events */
  gboolean (* event)			(GtkWidget	     *widget,
					 GdkEvent	     *event);
  gboolean (* button_press_event) (GtkWidget	     *widget,
					 GdkEventButton      *event);
  gboolean (* button_release_event) (GtkWidget	     *widget,
					 GdkEventButton      *event);
  gboolean (* scroll_event)		(GtkWidget           *widget,
					 GdkEventScroll      *event);
  gboolean (* motion_notify_event) (GtkWidget	     *widget,
					 GdkEventMotion      *event);
  gboolean (* delete_event)		(GtkWidget	     *widget,
					 GdkEventAny	     *event);
  gboolean (* destroy_event)		(GtkWidget	     *widget,
					 GdkEventAny	     *event);
  gboolean (* key_press_event)		(GtkWidget	     *widget,
					 GdkEventKey	     *event);
  gboolean (* key_release_event) (GtkWidget	     *widget,
					 GdkEventKey	     *event);
  gboolean (* enter_notify_event) (GtkWidget	     *widget,
					 GdkEventCrossing    *event);
  gboolean (* leave_notify_event) (GtkWidget	     *widget,
					 GdkEventCrossing    *event);
  gboolean (* configure_event)		(GtkWidget	     *widget,
					 GdkEventConfigure   *event);
  gboolean (* focus_in_event)		(GtkWidget	     *widget,
					 GdkEventFocus       *event);
  gboolean (* focus_out_event)		(GtkWidget	     *widget,
					 GdkEventFocus       *event);
  gboolean (* map_event)		(GtkWidget	     *widget,
					 GdkEventAny	     *event);
  gboolean (* unmap_event)		(GtkWidget	     *widget,
					 GdkEventAny	     *event);
  gboolean (* property_notify_event) (GtkWidget	     *widget,
					 GdkEventProperty    *event);
  gboolean (* selection_clear_event) (GtkWidget	     *widget,
					 GdkEventSelection   *event);
  gboolean (* selection_request_event) (GtkWidget	     *widget,
					 GdkEventSelection   *event);
  gboolean (* selection_notify_event) (GtkWidget	     *widget,
					 GdkEventSelection   *event);
  gboolean (* proximity_in_event) (GtkWidget	     *widget,
					 GdkEventProximity   *event);
  gboolean (* proximity_out_event) (GtkWidget	     *widget,
					 GdkEventProximity   *event);
  gboolean (* visibility_notify_event) (GtkWidget	     *widget,
					 GdkEventVisibility  *event);
  gboolean (* window_state_event) (GtkWidget	     *widget,
					 GdkEventWindowState *event);
  gboolean (* damage_event)             (GtkWidget           *widget,
                                         GdkEventExpose      *event);
  gboolean (* grab_broken_event)        (GtkWidget           *widget,
                                         GdkEventGrabBroken  *event);

  /* selection */
  void     (* selection_get)       (GtkWidget          *widget,
				    GtkSelectionData   *selection_data,
				    guint               info,
				    guint               time_);
  void     (* selection_received)  (GtkWidget          *widget,
				    GtkSelectionData   *selection_data,
				    guint               time_);

  /* Source side drag signals */
  void     (* drag_begin)          (GtkWidget         *widget,
				    GdkDragContext     *context);
  void     (* drag_end)	           (GtkWidget	       *widget,
				    GdkDragContext     *context);
  void     (* drag_data_get)       (GtkWidget          *widget,
				    GdkDragContext     *context,
				    GtkSelectionData   *selection_data,
				    guint               info,
				    guint               time_);
  void     (* drag_data_delete)    (GtkWidget          *widget,
				    GdkDragContext     *context);

  /* Target side drag signals */
  void     (* drag_leave)          (GtkWidget          *widget,
				    GdkDragContext     *context,
				    guint               time_);
  gboolean (* drag_motion)         (GtkWidget	       *widget,
				    GdkDragContext     *context,
				    gint                x,
				    gint                y,
				    guint               time_);
  gboolean (* drag_drop)           (GtkWidget	       *widget,
				    GdkDragContext     *context,
				    gint                x,
				    gint                y,
				    guint               time_);
  void     (* drag_data_received)  (GtkWidget          *widget,
				    GdkDragContext     *context,
				    gint                x,
				    gint                y,
				    GtkSelectionData   *selection_data,
				    guint               info,
				    guint               time_);
  gboolean (* drag_failed)         (GtkWidget          *widget,
                                    GdkDragContext     *context,
                                    GtkDragResult       result);

  /* Signals used only for keybindings */
  gboolean (* popup_menu)          (GtkWidget          *widget);

  /* If a widget has multiple tooltips/whatsthis, it should show the
   * one for the current focus location, or if that doesn't make
   * sense, should cycle through them showing each tip alongside
   * whatever piece of the widget it applies to.
   */
  gboolean (* show_help)           (GtkWidget          *widget,
                                    GtkWidgetHelpType   help_type);

  /* accessibility support
   */
  AtkObject *  (* get_accessible)     (GtkWidget *widget);

  void         (* screen_changed)     (GtkWidget *widget,
                                       GdkScreen *previous_screen);
  gboolean     (* can_activate_accel) (GtkWidget *widget,
                                       guint      signal_id);

  void         (* composited_changed) (GtkWidget *widget);

  gboolean     (* query_tooltip)      (GtkWidget  *widget,
				       gint        x,
				       gint        y,
				       gboolean    keyboard_tooltip,
				       GtkTooltip *tooltip);

  void         (* compute_expand)     (GtkWidget  *widget,
                                       gboolean   *hexpand_p,
                                       gboolean   *vexpand_p);

  void         (* adjust_size_request)    (GtkWidget         *widget,
                                           GtkOrientation     orientation,
                                           gint              *minimum_size,
                                           gint              *natural_size);
  void         (* adjust_size_allocation) (GtkWidget         *widget,
                                           GtkOrientation     orientation,
                                           gint              *minimum_size,
                                           gint              *natural_size,
                                           gint              *allocated_pos,
                                           gint              *allocated_size);

  void         (* style_updated)          (GtkWidget *widget);

  gboolean     (* touch_event)            (GtkWidget     *widget,
                                           GdkEventTouch *event);

  void         (* get_preferred_height_and_baseline_for_width)  (GtkWidget     *widget,
								 gint           width,
								 gint          *minimum_height,
								 gint          *natural_height,
								 gint          *minimum_baseline,
								 gint          *natural_baseline);
  void         (* adjust_baseline_request)(GtkWidget         *widget,
                                           gint              *minimum_baseline,
                                           gint              *natural_baseline);
  void         (* adjust_baseline_allocation) (GtkWidget         *widget,
					       gint              *baseline);
  void         (*queue_draw_region)           (GtkWidget         *widget,
					       const cairo_region_t *region);
};
</pre>
<div class="refsect3">
<a name="GtkWidgetClass.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="300px" class="struct_members_name">
<col class="struct_members_description">
<col width="200px" class="struct_members_annotations">
</colgroup>
<tbody>
<tr>
<td class="struct_member_name"><p><span class="type">guint</span> <em class="structfield"><code><a name="GtkWidgetClass.activate-signal"></a>activate_signal</code></em>;</p></td>
<td class="struct_member_description"><p>The signal to emit when a widget of this class is
activated, <a class="link" href="GtkWidget.html#gtk-widget-activate" title="gtk_widget_activate ()"><code class="function">gtk_widget_activate()</code></a> handles the emission.
Implementation of this signal is optional.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.dispatch-child-properties-changed"></a>dispatch_child_properties_changed</code></em> ()</p></td>
<td class="struct_member_description"><p>Seldomly overidden.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.destroy"></a>destroy</code></em> ()</p></td>
<td class="struct_member_description"><p>Signals that all holders of a reference to the widget
should release the reference that they hold.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.show"></a>show</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal emitted when widget is shown</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.show-all"></a>show_all</code></em> ()</p></td>
<td class="struct_member_description"><p>Recursively shows a widget, and any child widgets (if the widget is
a container).</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.hide"></a>hide</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal emitted when widget is hidden.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.map"></a>map</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal emitted when widget is going to be mapped, that is
when the widget is visible (which is controlled with
<a class="link" href="GtkWidget.html#gtk-widget-set-visible" title="gtk_widget_set_visible ()"><code class="function">gtk_widget_set_visible()</code></a>) and all its parents up to the toplevel
widget are also visible.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.unmap"></a>unmap</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal emitted when widget is going to be unmapped, which
means that either it or any of its parents up to the toplevel
widget have been set as hidden.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.realize"></a>realize</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal emitted when widget is associated with a
<span class="type">GdkWindow</span>, which means that <a class="link" href="GtkWidget.html#gtk-widget-realize" title="gtk_widget_realize ()"><code class="function">gtk_widget_realize()</code></a> has been called or
the widget has been mapped (that is, it is going to be drawn).</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.unrealize"></a>unrealize</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal emitted when the GdkWindow associated with
widget is destroyed, which means that <a class="link" href="GtkWidget.html#gtk-widget-unrealize" title="gtk_widget_unrealize ()"><code class="function">gtk_widget_unrealize()</code></a> has
been called or the widget has been unmapped (that is, it is going
to be hidden).</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.size-allocate"></a>size_allocate</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal emitted to get the widget allocation.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.state-changed"></a>state_changed</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal emitted when the widget state
changes. Deprecated: 3.0</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.state-flags-changed"></a>state_flags_changed</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal emitted when the widget state changes,
see <a class="link" href="GtkWidget.html#gtk-widget-get-state-flags" title="gtk_widget_get_state_flags ()"><code class="function">gtk_widget_get_state_flags()</code></a>.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.parent-set"></a>parent_set</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal emitted when a new parent has been set on a
widget.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.hierarchy-changed"></a>hierarchy_changed</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal emitted when the anchored state of a
widget changes.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.style-set"></a>style_set</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal emitted when a new style has been set on a
widget. Deprecated: 3.0</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.direction-changed"></a>direction_changed</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal emitted when the text direction of a
widget changes.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.grab-notify"></a>grab_notify</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal emitted when a widget becomes shadowed by a
GTK+ grab (not a pointer or keyboard grab) on another widget, or
when it becomes unshadowed due to a grab being removed.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.child-notify"></a>child_notify</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal emitted for each child property that has
changed on an object.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.draw"></a>draw</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal emitted when a widget is supposed to render itself.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.get-request-mode"></a>get_request_mode</code></em> ()</p></td>
<td class="struct_member_description"><p>This allows a widget to tell its parent container whether
it prefers to be allocated in <a class="link" href="GtkWidget.html#GTK-SIZE-REQUEST-HEIGHT-FOR-WIDTH:CAPS"><code class="literal">GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTH</code></a> or
<a class="link" href="GtkWidget.html#GTK-SIZE-REQUEST-WIDTH-FOR-HEIGHT:CAPS"><code class="literal">GTK_SIZE_REQUEST_WIDTH_FOR_HEIGHT</code></a> mode.
<a class="link" href="GtkWidget.html#GTK-SIZE-REQUEST-HEIGHT-FOR-WIDTH:CAPS"><code class="literal">GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTH</code></a> means the widget prefers to have
<a class="link" href="GtkWidget.html#GtkWidgetClass.get-preferred-width"><code class="function">GtkWidgetClass.get_preferred_width()</code></a> called and then
<a class="link" href="GtkWidget.html#GtkWidgetClass.get-preferred-height-for-width"><code class="function">GtkWidgetClass.get_preferred_height_for_width()</code></a>.
<a class="link" href="GtkWidget.html#GTK-SIZE-REQUEST-CONSTANT-SIZE:CAPS"><code class="literal">GTK_SIZE_REQUEST_CONSTANT_SIZE</code></a> disables any height-for-width or
width-for-height geometry management for a said widget and is the
default return.
It’s important to note (as described below) that any widget
which trades height-for-width or width-for-height must respond properly
to both of the virtual methods <a class="link" href="GtkWidget.html#GtkWidgetClass.get-preferred-height-for-width"><code class="function">GtkWidgetClass.get_preferred_height_for_width()</code></a>
and <a class="link" href="GtkWidget.html#GtkWidgetClass.get-preferred-width-for-height"><code class="function">GtkWidgetClass.get_preferred_width_for_height()</code></a> since it might be
queried in either <a class="link" href="GtkWidget.html#GtkSizeRequestMode" title="enum GtkSizeRequestMode"><span class="type">GtkSizeRequestMode</span></a> by its parent container.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.get-preferred-height"></a>get_preferred_height</code></em> ()</p></td>
<td class="struct_member_description"><p>This is called by containers to obtain the minimum
and natural height of a widget. A widget that does not actually trade
any height for width or width for height only has to implement these
two virtual methods (<a class="link" href="GtkWidget.html#GtkWidgetClass.get-preferred-width"><code class="function">GtkWidgetClass.get_preferred_width()</code></a> and
<a class="link" href="GtkWidget.html#GtkWidgetClass.get-preferred-height"><code class="function">GtkWidgetClass.get_preferred_height()</code></a>).</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.get-preferred-width-for-height"></a>get_preferred_width_for_height</code></em> ()</p></td>
<td class="struct_member_description"><p>This is analogous to
<a class="link" href="GtkWidget.html#GtkWidgetClass.get-preferred-height-for-width"><code class="function">GtkWidgetClass.get_preferred_height_for_width()</code></a> except that it
operates in the oposite orientation. It’s rare that a widget actually
does <a class="link" href="GtkWidget.html#GTK-SIZE-REQUEST-WIDTH-FOR-HEIGHT:CAPS"><code class="literal">GTK_SIZE_REQUEST_WIDTH_FOR_HEIGHT</code></a> requests but this can happen
when, for example, a widget or container gets additional columns to
compensate for a smaller allocated height.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.get-preferred-width"></a>get_preferred_width</code></em> ()</p></td>
<td class="struct_member_description"><p>This is called by containers to obtain the minimum
and natural width of a widget. A widget will never be allocated a width
less than its minimum and will only ever be allocated a width greater
than the natural width once all of the said widget’s siblings have
received their natural widths.
Furthermore, a widget will only ever be allocated a width greater than
its natural width if it was configured to receive extra expand space
from its parent container.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.get-preferred-height-for-width"></a>get_preferred_height_for_width</code></em> ()</p></td>
<td class="struct_member_description"><p>This is similar to
<a class="link" href="GtkWidget.html#GtkWidgetClass.get-preferred-height"><code class="function">GtkWidgetClass.get_preferred_height()</code></a> except that it is passed a
contextual width to request height for. By implementing this virtual
method it is possible for a <a class="link" href="GtkLabel.html" title="GtkLabel"><span class="type">GtkLabel</span></a> to tell its parent how much height
would be required if the label were to be allocated a said width.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.mnemonic-activate"></a>mnemonic_activate</code></em> ()</p></td>
<td class="struct_member_description"><p>Activates the <em class="parameter"><code>widget</code></em>
if <em class="parameter"><code>group_cycling</code></em>
is
<code class="literal">FALSE</code>, and just grabs the focus if <em class="parameter"><code>group_cycling</code></em>
is <code class="literal">TRUE</code>.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.grab-focus"></a>grab_focus</code></em> ()</p></td>
<td class="struct_member_description"><p>Causes <em class="parameter"><code>widget</code></em>
to have the keyboard focus for the
<a class="link" href="GtkWindow.html" title="GtkWindow"><span class="type">GtkWindow</span></a> it’s inside.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.focus"></a>focus</code></em> ()</p></td>
<td class="struct_member_description"> </td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.move-focus"></a>move_focus</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal emitted when a change of focus is requested</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.keynav-failed"></a>keynav_failed</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal emitted if keyboard navigation fails.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.event"></a>event</code></em> ()</p></td>
<td class="struct_member_description"><p>The GTK+ main loop will emit three signals for each GDK
event delivered to a widget: one generic ::event signal, another,
more specific, signal that matches the type of event delivered
(e.g. "key-press-event") and finally a generic "event-after"
signal.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.button-press-event"></a>button_press_event</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal will be emitted when a button
(typically from a mouse) is pressed.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.button-release-event"></a>button_release_event</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal will be emitted when a button
(typically from a mouse) is released.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.scroll-event"></a>scroll_event</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal emitted when a button in the 4 to 7 range is
pressed.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.motion-notify-event"></a>motion_notify_event</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal emitted when the pointer moves over
the widget’s <span class="type">GdkWindow</span>.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.delete-event"></a>delete_event</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal emitted if a user requests that a toplevel
window is closed.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.destroy-event"></a>destroy_event</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal is emitted when a <span class="type">GdkWindow</span> is destroyed.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.key-press-event"></a>key_press_event</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal emitted when a key is pressed.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.key-release-event"></a>key_release_event</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal is emitted when a key is released.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.enter-notify-event"></a>enter_notify_event</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal event will be emitted when the pointer
enters the widget’s window.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.leave-notify-event"></a>leave_notify_event</code></em> ()</p></td>
<td class="struct_member_description"><p>Will be emitted when the pointer leaves the
widget’s window.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.configure-event"></a>configure_event</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal will be emitted when the size, position or
stacking of the widget’s window has changed.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.focus-in-event"></a>focus_in_event</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal emitted when the keyboard focus enters the
widget’s window.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.focus-out-event"></a>focus_out_event</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal emitted when the keyboard focus leaves the
widget’s window.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.map-event"></a>map_event</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal emitted when the widget’s window is mapped.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.unmap-event"></a>unmap_event</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal will be emitted when the widget’s window is
unmapped.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.property-notify-event"></a>property_notify_event</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal will be emitted when a property on
the widget’s window has been changed or deleted.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.selection-clear-event"></a>selection_clear_event</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal will be emitted when the the
widget’s window has lost ownership of a selection.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.selection-request-event"></a>selection_request_event</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal will be emitted when another
client requests ownership of the selection owned by the widget's
window.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.selection-notify-event"></a>selection_notify_event</code></em> ()</p></td>
<td class="struct_member_description"> </td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.proximity-in-event"></a>proximity_in_event</code></em> ()</p></td>
<td class="struct_member_description"> </td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.proximity-out-event"></a>proximity_out_event</code></em> ()</p></td>
<td class="struct_member_description"> </td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.visibility-notify-event"></a>visibility_notify_event</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal emitted when the widget’s window is
obscured or unobscured.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.window-state-event"></a>window_state_event</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal emitted when the state of the toplevel
window associated to the widget changes.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.damage-event"></a>damage_event</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal emitted when a redirected window belonging to
widget gets drawn into.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.grab-broken-event"></a>grab_broken_event</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal emitted when a pointer or keyboard grab
on a window belonging to widget gets broken.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.selection-get"></a>selection_get</code></em> ()</p></td>
<td class="struct_member_description"> </td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.selection-received"></a>selection_received</code></em> ()</p></td>
<td class="struct_member_description"> </td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.drag-begin"></a>drag_begin</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal emitted on the drag source when a drag is
started.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.drag-end"></a>drag_end</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal emitted on the drag source when a drag is
finished.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.drag-data-get"></a>drag_data_get</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal emitted on the drag source when the drop
site requests the data which is dragged.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.drag-data-delete"></a>drag_data_delete</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal emitted on the drag source when a drag
with the action <code class="literal">GDK_ACTION_MOVE</code> is successfully completed.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.drag-leave"></a>drag_leave</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal emitted on the drop site when the cursor leaves
the widget.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.drag-motion"></a>drag_motion</code></em> ()</p></td>
<td class="struct_member_description"><p>signal emitted on the drop site when the user moves
the cursor over the widget during a drag.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.drag-drop"></a>drag_drop</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal emitted on the drop site when the user drops the
data onto the widget.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.drag-data-received"></a>drag_data_received</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal emitted on the drop site when the
dragged data has been received.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.drag-failed"></a>drag_failed</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal emitted on the drag source when a drag has
failed.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.popup-menu"></a>popup_menu</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal emitted whenever a widget should pop up a
context menu.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.show-help"></a>show_help</code></em> ()</p></td>
<td class="struct_member_description"> </td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.get-accessible"></a>get_accessible</code></em> ()</p></td>
<td class="struct_member_description"><p>Returns the accessible object that describes the
widget to an assistive technology.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.screen-changed"></a>screen_changed</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal emitted when the screen of a widget has
changed.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.can-activate-accel"></a>can_activate_accel</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal allows applications and derived widgets
to override the default GtkWidget handling for determining whether
an accelerator can be activated.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.composited-changed"></a>composited_changed</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal emitted when the composited status of
widgets screen changes. See <code class="function">gdk_screen_is_composited()</code>.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.query-tooltip"></a>query_tooltip</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal emitted when “has-tooltip” is <code class="literal">TRUE</code> and the
hover timeout has expired with the cursor hovering “above”
widget; or emitted when widget got focus in keyboard mode.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.compute-expand"></a>compute_expand</code></em> ()</p></td>
<td class="struct_member_description"><p>Computes whether a container should give this
widget extra space when possible.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.adjust-size-request"></a>adjust_size_request</code></em> ()</p></td>
<td class="struct_member_description"><p>Convert an initial size request from a widget's
<a class="link" href="GtkWidget.html#GtkSizeRequestMode" title="enum GtkSizeRequestMode"><span class="type">GtkSizeRequestMode</span></a> virtual method implementations into a size request to
be used by parent containers in laying out the widget.
adjust_size_request adjusts from a child widget's
original request to what a parent container should
use for layout. The <em class="parameter"><code>for_size</code></em>
argument will be -1 if the request should
not be for a particular size in the opposing orientation, i.e. if the
request is not height-for-width or width-for-height. If <em class="parameter"><code>for_size</code></em>
is
greater than -1, it is the proposed allocation in the opposing
orientation that we need the request for. Implementations of
adjust_size_request should chain up to the default implementation,
which applies <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a>’s margin properties and imposes any values
from <a class="link" href="GtkWidget.html#gtk-widget-set-size-request" title="gtk_widget_set_size_request ()"><code class="function">gtk_widget_set_size_request()</code></a>. Chaining up should be last,
after your subclass adjusts the request, so
<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> can apply constraints and add the margin properly.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.adjust-size-allocation"></a>adjust_size_allocation</code></em> ()</p></td>
<td class="struct_member_description"><p>Convert an initial size allocation assigned
by a <a class="link" href="GtkContainer.html" title="GtkContainer"><span class="type">GtkContainer</span></a> using <a class="link" href="GtkWidget.html#gtk-widget-size-allocate" title="gtk_widget_size_allocate ()"><code class="function">gtk_widget_size_allocate()</code></a>, into an actual
size allocation to be used by the widget. adjust_size_allocation
adjusts to a child widget’s actual allocation
from what a parent container computed for the
child. The adjusted allocation must be entirely within the original
allocation. In any custom implementation, chain up to the default
<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> implementation of this method, which applies the margin
and alignment properties of <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a>. Chain up
before performing your own adjustments so your
own adjustments remove more allocation after the <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> base
class has already removed margin and alignment. The natural size
passed in should be adjusted in the same way as the allocated size,
which allows adjustments to perform alignments or other changes
based on natural size.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.style-updated"></a>style_updated</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal emitted when the GtkStyleContext of a widget
is changed.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.touch-event"></a>touch_event</code></em> ()</p></td>
<td class="struct_member_description"><p>Signal emitted when a touch event happens</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.get-preferred-height-and-baseline-for-width"></a>get_preferred_height_and_baseline_for_width</code></em> ()</p></td>
<td class="struct_member_description"> </td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.adjust-baseline-request"></a>adjust_baseline_request</code></em> ()</p></td>
<td class="struct_member_description"> </td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.adjust-baseline-allocation"></a>adjust_baseline_allocation</code></em> ()</p></td>
<td class="struct_member_description"> </td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><em class="structfield"><code><a name="GtkWidgetClass.queue-draw-region"></a>queue_draw_region</code></em> ()</p></td>
<td class="struct_member_description"><p>Invalidates the area of widget defined by
region by calling <code class="function">gdk_window_invalidate_region()</code> on the widget's
window and all its child windows.</p></td>
<td class="struct_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GtkRequisition-struct"></a><h3>GtkRequisition</h3>
<pre class="programlisting">typedef struct {
  gint width;
  gint height;
} GtkRequisition;
</pre>
<p>A <a class="link" href="GtkWidget.html#GtkRequisition-struct" title="GtkRequisition"><span class="type">GtkRequisition</span></a> represents the desired size of a widget. See
<a class="link" href="GtkWidget.html#geometry-management" title="Height-for-width Geometry Management">GtkWidget’s geometry management section</a> for
more information.</p>
<div class="refsect3">
<a name="GtkRequisition.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="300px" class="struct_members_name">
<col class="struct_members_description">
<col width="200px" class="struct_members_annotations">
</colgroup>
<tbody>
<tr>
<td class="struct_member_name"><p><span class="type">gint</span> <em class="structfield"><code><a name="GtkRequisition-struct.width"></a>width</code></em>;</p></td>
<td class="struct_member_description"><p>the widget’s desired width</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><span class="type">gint</span> <em class="structfield"><code><a name="GtkRequisition-struct.height"></a>height</code></em>;</p></td>
<td class="struct_member_description"><p>the widget’s desired height</p></td>
<td class="struct_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GtkAllocation"></a><h3>GtkAllocation</h3>
<pre class="programlisting">typedef 	GdkRectangle	   GtkAllocation;
</pre>
<p>A <span class="type">GtkAllocation</span> of a widget represents region
which has been allocated to the widget by its parent. It is a subregion
of its parents allocation. See
<a class="link" href="GtkWidget.html#geometry-management" title="Height-for-width Geometry Management">GtkWidget’s geometry management section</a> for
more information.</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidgetHelpType"></a><h3>enum GtkWidgetHelpType</h3>
<p>Kinds of widget-specific help. Used by the ::show-help signal.</p>
<div class="refsect3">
<a name="GtkWidgetHelpType.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="300px" class="enum_members_name">
<col class="enum_members_description">
<col width="200px" class="enum_members_annotations">
</colgroup>
<tbody>
<tr>
<td class="enum_member_name"><p><a name="GTK-WIDGET-HELP-TOOLTIP:CAPS"></a>GTK_WIDGET_HELP_TOOLTIP</p></td>
<td class="enum_member_description">
<p>Tooltip.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GTK-WIDGET-HELP-WHATS-THIS:CAPS"></a>GTK_WIDGET_HELP_WHATS_THIS</p></td>
<td class="enum_member_description">
<p>What’s this.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GtkTextDirection"></a><h3>enum GtkTextDirection</h3>
<p>Reading directions for text.</p>
<div class="refsect3">
<a name="GtkTextDirection.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="300px" class="enum_members_name">
<col class="enum_members_description">
<col width="200px" class="enum_members_annotations">
</colgroup>
<tbody>
<tr>
<td class="enum_member_name"><p><a name="GTK-TEXT-DIR-NONE:CAPS"></a>GTK_TEXT_DIR_NONE</p></td>
<td class="enum_member_description">
<p>No direction.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GTK-TEXT-DIR-LTR:CAPS"></a>GTK_TEXT_DIR_LTR</p></td>
<td class="enum_member_description">
<p>Left to right text direction.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GTK-TEXT-DIR-RTL:CAPS"></a>GTK_TEXT_DIR_RTL</p></td>
<td class="enum_member_description">
<p>Right to left text direction.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GtkStateType"></a><h3>enum GtkStateType</h3>
<div class="warning">
<p><code class="literal">GtkStateType</code> has been deprecated since version 3.14 and should not be used in newly-written code.</p>
<p>All APIs that are using this enumeration have been deprecated
    in favor of alternatives using <a class="link" href="gtk3-Standard-Enumerations.html#GtkStateFlags" title="enum GtkStateFlags"><span class="type">GtkStateFlags</span></a>.</p>
</div>
<p>This type indicates the current state of a widget; the state determines how
the widget is drawn. The <a class="link" href="GtkWidget.html#GtkStateType" title="enum GtkStateType"><span class="type">GtkStateType</span></a> enumeration is also used to
identify different colors in a <a class="link" href="GtkStyle.html" title="GtkStyle"><span class="type">GtkStyle</span></a> for drawing, so states can be
used for subparts of a widget as well as entire widgets.</p>
<div class="refsect3">
<a name="GtkStateType.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="300px" class="enum_members_name">
<col class="enum_members_description">
<col width="200px" class="enum_members_annotations">
</colgroup>
<tbody>
<tr>
<td class="enum_member_name"><p><a name="GTK-STATE-NORMAL:CAPS"></a>GTK_STATE_NORMAL</p></td>
<td class="enum_member_description">
<p>State during normal operation.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GTK-STATE-ACTIVE:CAPS"></a>GTK_STATE_ACTIVE</p></td>
<td class="enum_member_description">
<p>State of a currently active widget, such as a depressed button.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GTK-STATE-PRELIGHT:CAPS"></a>GTK_STATE_PRELIGHT</p></td>
<td class="enum_member_description">
<p>State indicating that the mouse pointer is over
the widget and the widget will respond to mouse clicks.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GTK-STATE-SELECTED:CAPS"></a>GTK_STATE_SELECTED</p></td>
<td class="enum_member_description">
<p>State of a selected item, such the selected row in a list.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GTK-STATE-INSENSITIVE:CAPS"></a>GTK_STATE_INSENSITIVE</p></td>
<td class="enum_member_description">
<p>State indicating that the widget is
unresponsive to user actions.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GTK-STATE-INCONSISTENT:CAPS"></a>GTK_STATE_INCONSISTENT</p></td>
<td class="enum_member_description">
<p>The widget is inconsistent, such as checkbuttons
or radiobuttons that aren’t either set to <code class="literal">TRUE</code> nor <code class="literal">FALSE</code>,
or buttons requiring the user attention.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GTK-STATE-FOCUSED:CAPS"></a>GTK_STATE_FOCUSED</p></td>
<td class="enum_member_description">
<p>The widget has the keyboard focus.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GtkSizeRequestMode"></a><h3>enum GtkSizeRequestMode</h3>
<p>Specifies a preference for height-for-width or
width-for-height geometry management.</p>
<div class="refsect3">
<a name="GtkSizeRequestMode.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="300px" class="enum_members_name">
<col class="enum_members_description">
<col width="200px" class="enum_members_annotations">
</colgroup>
<tbody>
<tr>
<td class="enum_member_name"><p><a name="GTK-SIZE-REQUEST-HEIGHT-FOR-WIDTH:CAPS"></a>GTK_SIZE_REQUEST_HEIGHT_FOR_WIDTH</p></td>
<td class="enum_member_description">
<p>Prefer height-for-width geometry management</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GTK-SIZE-REQUEST-WIDTH-FOR-HEIGHT:CAPS"></a>GTK_SIZE_REQUEST_WIDTH_FOR_HEIGHT</p></td>
<td class="enum_member_description">
<p>Prefer width-for-height geometry management</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GTK-SIZE-REQUEST-CONSTANT-SIZE:CAPS"></a>GTK_SIZE_REQUEST_CONSTANT_SIZE</p></td>
<td class="enum_member_description">
<p>Don’t trade height-for-width or width-for-height</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GtkRequestedSize"></a><h3>struct GtkRequestedSize</h3>
<pre class="programlisting">struct GtkRequestedSize {
  gpointer data;
  gint     minimum_size;
  gint     natural_size;
};
</pre>
<p>Represents a request of a screen object in a given orientation. These
are primarily used in container implementations when allocating a natural
size for children calling. See <a class="link" href="GtkWidget.html#gtk-distribute-natural-allocation" title="gtk_distribute_natural_allocation ()"><code class="function">gtk_distribute_natural_allocation()</code></a>.</p>
<div class="refsect3">
<a name="GtkRequestedSize.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="300px" class="struct_members_name">
<col class="struct_members_description">
<col width="200px" class="struct_members_annotations">
</colgroup>
<tbody>
<tr>
<td class="struct_member_name"><p><span class="type">gpointer</span> <em class="structfield"><code><a name="GtkRequestedSize.data"></a>data</code></em>;</p></td>
<td class="struct_member_description"><p>A client pointer</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><span class="type">gint</span> <em class="structfield"><code><a name="GtkRequestedSize.minimum-size"></a>minimum_size</code></em>;</p></td>
<td class="struct_member_description"><p>The minimum size needed for allocation in a given orientation</p></td>
<td class="struct_member_annotations"> </td>
</tr>
<tr>
<td class="struct_member_name"><p><span class="type">gint</span> <em class="structfield"><code><a name="GtkRequestedSize.natural-size"></a>natural_size</code></em>;</p></td>
<td class="struct_member_description"><p>The natural size for allocation in a given orientation</p></td>
<td class="struct_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GtkAlign"></a><h3>enum GtkAlign</h3>
<p>Controls how a widget deals with extra space in a single (x or y)
dimension.</p>
<p>Alignment only matters if the widget receives a “too large” allocation,
for example if you packed the widget with the <a class="link" href="GtkWidget.html#GtkWidget--expand" title="The “expand” property"><span class="type">“expand”</span></a>
flag inside a <a class="link" href="GtkBox.html" title="GtkBox"><span class="type">GtkBox</span></a>, then the widget might get extra space.  If
you have for example a 16x16 icon inside a 32x32 space, the icon
could be scaled and stretched, it could be centered, or it could be
positioned to one side of the space.</p>
<p>Note that in horizontal context <em class="parameter"><code>GTK_ALIGN_START</code></em>
 and <em class="parameter"><code>GTK_ALIGN_END</code></em>

are interpreted relative to text direction.</p>
<p>GTK_ALIGN_BASELINE support for it is optional for containers and widgets, and
it is only supported for vertical alignment.  When its not supported by
a child or a container it is treated as <em class="parameter"><code>GTK_ALIGN_FILL</code></em>
.</p>
<div class="refsect3">
<a name="GtkAlign.members"></a><h4>Members</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="300px" class="enum_members_name">
<col class="enum_members_description">
<col width="200px" class="enum_members_annotations">
</colgroup>
<tbody>
<tr>
<td class="enum_member_name"><p><a name="GTK-ALIGN-FILL:CAPS"></a>GTK_ALIGN_FILL</p></td>
<td class="enum_member_description">
<p>stretch to fill all space if possible, center if
no meaningful way to stretch</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GTK-ALIGN-START:CAPS"></a>GTK_ALIGN_START</p></td>
<td class="enum_member_description">
<p>snap to left or top side, leaving space on right
or bottom</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GTK-ALIGN-END:CAPS"></a>GTK_ALIGN_END</p></td>
<td class="enum_member_description">
<p>snap to right or bottom side, leaving space on left
or top</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GTK-ALIGN-CENTER:CAPS"></a>GTK_ALIGN_CENTER</p></td>
<td class="enum_member_description">
<p>center natural width of widget inside the
allocation</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
<tr>
<td class="enum_member_name"><p><a name="GTK-ALIGN-BASELINE:CAPS"></a>GTK_ALIGN_BASELINE</p></td>
<td class="enum_member_description">
<p>align the widget according to the baseline. Since 3.10.</p>
</td>
<td class="enum_member_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
</div>
<div class="refsect1">
<a name="GtkWidget.property-details"></a><h2>Property Details</h2>
<div class="refsect2">
<a name="GtkWidget--app-paintable"></a><h3>The <code class="literal">“app-paintable”</code> property</h3>
<pre class="programlisting">  “app-paintable”            <span class="type">gboolean</span></pre>
<p>Whether the application will paint directly on the widget.</p>
<p>Owner: GtkWidget</p>
<p>Flags: Read / Write</p>
<p>Default value: FALSE</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--can-default"></a><h3>The <code class="literal">“can-default”</code> property</h3>
<pre class="programlisting">  “can-default”              <span class="type">gboolean</span></pre>
<p>Whether the widget can be the default widget.</p>
<p>Owner: GtkWidget</p>
<p>Flags: Read / Write</p>
<p>Default value: FALSE</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--can-focus"></a><h3>The <code class="literal">“can-focus”</code> property</h3>
<pre class="programlisting">  “can-focus”                <span class="type">gboolean</span></pre>
<p>Whether the widget can accept the input focus.</p>
<p>Owner: GtkWidget</p>
<p>Flags: Read / Write</p>
<p>Default value: FALSE</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--composite-child"></a><h3>The <code class="literal">“composite-child”</code> property</h3>
<pre class="programlisting">  “composite-child”          <span class="type">gboolean</span></pre>
<p>Whether the widget is part of a composite widget.</p>
<p>Owner: GtkWidget</p>
<p>Flags: Read</p>
<p>Default value: FALSE</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--double-buffered"></a><h3>The <code class="literal">“double-buffered”</code> property</h3>
<pre class="programlisting">  “double-buffered”          <span class="type">gboolean</span></pre>
<p>Whether the widget is double buffered.</p>
<div class="warning">
<p><code class="literal">GtkWidget:double-buffered</code> has been deprecated since version 3.14 and should not be used in newly-written code.</p>
<p>Widgets should not use this property.</p>
</div>
<p>Owner: GtkWidget</p>
<p>Flags: Read / Write</p>
<p>Default value: TRUE</p>
<p class="since">Since: 2.18</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--events"></a><h3>The <code class="literal">“events”</code> property</h3>
<pre class="programlisting">  “events”                   <span class="type">GdkEventMask</span></pre>
<p>The event mask that decides what kind of GdkEvents this widget gets.</p>
<p>Owner: GtkWidget</p>
<p>Flags: Read / Write</p>
<p>Default value: GDK_STRUCTURE_MASK</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--expand"></a><h3>The <code class="literal">“expand”</code> property</h3>
<pre class="programlisting">  “expand”                   <span class="type">gboolean</span></pre>
<p>Whether to expand in both directions. Setting this sets both <a class="link" href="GtkWidget.html#GtkWidget--hexpand" title="The “hexpand” property"><span class="type">“hexpand”</span></a> and <a class="link" href="GtkWidget.html#GtkWidget--vexpand" title="The “vexpand” property"><span class="type">“vexpand”</span></a></p>
<p>Owner: GtkWidget</p>
<p>Flags: Read / Write</p>
<p>Default value: FALSE</p>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--focus-on-click"></a><h3>The <code class="literal">“focus-on-click”</code> property</h3>
<pre class="programlisting">  “focus-on-click”           <span class="type">gboolean</span></pre>
<p>Whether the widget should grab focus when it is clicked with the mouse.</p>
<p>This property is only relevant for widgets that can take focus.</p>
<p>Before 3.20, several widgets (GtkButton, GtkFileChooserButton,
GtkComboBox) implemented this property individually.</p>
<p>Owner: GtkWidget</p>
<p>Flags: Read / Write</p>
<p>Default value: TRUE</p>
<p class="since">Since: <a class="link" href="api-index-3-20.html#api-index-3.20">3.20</a></p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--halign"></a><h3>The <code class="literal">“halign”</code> property</h3>
<pre class="programlisting">  “halign”                   <a class="link" href="GtkWidget.html#GtkAlign" title="enum GtkAlign"><span class="type">GtkAlign</span></a></pre>
<p>How to distribute horizontal space if widget gets extra space, see <a class="link" href="GtkWidget.html#GtkAlign" title="enum GtkAlign"><span class="type">GtkAlign</span></a></p>
<p>Owner: GtkWidget</p>
<p>Flags: Read / Write</p>
<p>Default value: GTK_ALIGN_FILL</p>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--has-default"></a><h3>The <code class="literal">“has-default”</code> property</h3>
<pre class="programlisting">  “has-default”              <span class="type">gboolean</span></pre>
<p>Whether the widget is the default widget.</p>
<p>Owner: GtkWidget</p>
<p>Flags: Read / Write</p>
<p>Default value: FALSE</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--has-focus"></a><h3>The <code class="literal">“has-focus”</code> property</h3>
<pre class="programlisting">  “has-focus”                <span class="type">gboolean</span></pre>
<p>Whether the widget has the input focus.</p>
<p>Owner: GtkWidget</p>
<p>Flags: Read / Write</p>
<p>Default value: FALSE</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--has-tooltip"></a><h3>The <code class="literal">“has-tooltip”</code> property</h3>
<pre class="programlisting">  “has-tooltip”              <span class="type">gboolean</span></pre>
<p>Enables or disables the emission of <a class="link" href="GtkWidget.html#GtkWidget-query-tooltip" title="The “query-tooltip” signal"><span class="type">“query-tooltip”</span></a> on <em class="parameter"><code>widget</code></em>
.
A value of <code class="literal">TRUE</code> indicates that <em class="parameter"><code>widget</code></em>
 can have a tooltip, in this case
the widget will be queried using <a class="link" href="GtkWidget.html#GtkWidget-query-tooltip" title="The “query-tooltip” signal"><span class="type">“query-tooltip”</span></a> to determine
whether it will provide a tooltip or not.</p>
<p>Note that setting this property to <code class="literal">TRUE</code> for the first time will change
the event masks of the GdkWindows of this widget to include leave-notify
and motion-notify events.  This cannot and will not be undone when the
property is set to <code class="literal">FALSE</code> again.</p>
<p>Owner: GtkWidget</p>
<p>Flags: Read / Write</p>
<p>Default value: FALSE</p>
<p class="since">Since: 2.12</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--height-request"></a><h3>The <code class="literal">“height-request”</code> property</h3>
<pre class="programlisting">  “height-request”           <span class="type">int</span></pre>
<p>Override for height request of the widget, or -1 if natural request should be used.</p>
<p>Owner: GtkWidget</p>
<p>Flags: Read / Write</p>
<p>Allowed values: &gt;= -1</p>
<p>Default value: -1</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--hexpand"></a><h3>The <code class="literal">“hexpand”</code> property</h3>
<pre class="programlisting">  “hexpand”                  <span class="type">gboolean</span></pre>
<p>Whether to expand horizontally. See <a class="link" href="GtkWidget.html#gtk-widget-set-hexpand" title="gtk_widget_set_hexpand ()"><code class="function">gtk_widget_set_hexpand()</code></a>.</p>
<p>Owner: GtkWidget</p>
<p>Flags: Read / Write</p>
<p>Default value: FALSE</p>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--hexpand-set"></a><h3>The <code class="literal">“hexpand-set”</code> property</h3>
<pre class="programlisting">  “hexpand-set”              <span class="type">gboolean</span></pre>
<p>Whether to use the <a class="link" href="GtkWidget.html#GtkWidget--hexpand" title="The “hexpand” property"><span class="type">“hexpand”</span></a> property. See <a class="link" href="GtkWidget.html#gtk-widget-get-hexpand-set" title="gtk_widget_get_hexpand_set ()"><code class="function">gtk_widget_get_hexpand_set()</code></a>.</p>
<p>Owner: GtkWidget</p>
<p>Flags: Read / Write</p>
<p>Default value: FALSE</p>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--is-focus"></a><h3>The <code class="literal">“is-focus”</code> property</h3>
<pre class="programlisting">  “is-focus”                 <span class="type">gboolean</span></pre>
<p>Whether the widget is the focus widget within the toplevel.</p>
<p>Owner: GtkWidget</p>
<p>Flags: Read / Write</p>
<p>Default value: FALSE</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--margin"></a><h3>The <code class="literal">“margin”</code> property</h3>
<pre class="programlisting">  “margin”                   <span class="type">int</span></pre>
<p>Sets all four sides' margin at once. If read, returns max
margin on any side.</p>
<p>Owner: GtkWidget</p>
<p>Flags: Read / Write</p>
<p>Allowed values: [0,32767]</p>
<p>Default value: 0</p>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--margin-bottom"></a><h3>The <code class="literal">“margin-bottom”</code> property</h3>
<pre class="programlisting">  “margin-bottom”            <span class="type">int</span></pre>
<p>Margin on bottom side of widget.</p>
<p>This property adds margin outside of the widget's normal size
request, the margin will be added in addition to the size from
<a class="link" href="GtkWidget.html#gtk-widget-set-size-request" title="gtk_widget_set_size_request ()"><code class="function">gtk_widget_set_size_request()</code></a> for example.</p>
<p>Owner: GtkWidget</p>
<p>Flags: Read / Write</p>
<p>Allowed values: [0,32767]</p>
<p>Default value: 0</p>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--margin-end"></a><h3>The <code class="literal">“margin-end”</code> property</h3>
<pre class="programlisting">  “margin-end”               <span class="type">int</span></pre>
<p>Margin on end of widget, horizontally. This property supports
left-to-right and right-to-left text directions.</p>
<p>This property adds margin outside of the widget's normal size
request, the margin will be added in addition to the size from
<a class="link" href="GtkWidget.html#gtk-widget-set-size-request" title="gtk_widget_set_size_request ()"><code class="function">gtk_widget_set_size_request()</code></a> for example.</p>
<p>Owner: GtkWidget</p>
<p>Flags: Read / Write</p>
<p>Allowed values: [0,32767]</p>
<p>Default value: 0</p>
<p class="since">Since: <a class="link" href="api-index-3-12.html#api-index-3.12">3.12</a></p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--margin-left"></a><h3>The <code class="literal">“margin-left”</code> property</h3>
<pre class="programlisting">  “margin-left”              <span class="type">int</span></pre>
<p>Margin on left side of widget.</p>
<p>This property adds margin outside of the widget's normal size
request, the margin will be added in addition to the size from
<a class="link" href="GtkWidget.html#gtk-widget-set-size-request" title="gtk_widget_set_size_request ()"><code class="function">gtk_widget_set_size_request()</code></a> for example.</p>
<div class="warning">
<p><code class="literal">GtkWidget:margin-left</code> has been deprecated since version 3.12 and should not be used in newly-written code.</p>
<p>Use <a class="link" href="GtkWidget.html#GtkWidget--margin-start" title="The “margin-start” property"><span class="type">“margin-start”</span></a> instead.</p>
</div>
<p>Owner: GtkWidget</p>
<p>Flags: Read / Write</p>
<p>Allowed values: [0,32767]</p>
<p>Default value: 0</p>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--margin-right"></a><h3>The <code class="literal">“margin-right”</code> property</h3>
<pre class="programlisting">  “margin-right”             <span class="type">int</span></pre>
<p>Margin on right side of widget.</p>
<p>This property adds margin outside of the widget's normal size
request, the margin will be added in addition to the size from
<a class="link" href="GtkWidget.html#gtk-widget-set-size-request" title="gtk_widget_set_size_request ()"><code class="function">gtk_widget_set_size_request()</code></a> for example.</p>
<div class="warning">
<p><code class="literal">GtkWidget:margin-right</code> has been deprecated since version 3.12 and should not be used in newly-written code.</p>
<p>Use <a class="link" href="GtkWidget.html#GtkWidget--margin-end" title="The “margin-end” property"><span class="type">“margin-end”</span></a> instead.</p>
</div>
<p>Owner: GtkWidget</p>
<p>Flags: Read / Write</p>
<p>Allowed values: [0,32767]</p>
<p>Default value: 0</p>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--margin-start"></a><h3>The <code class="literal">“margin-start”</code> property</h3>
<pre class="programlisting">  “margin-start”             <span class="type">int</span></pre>
<p>Margin on start of widget, horizontally. This property supports
left-to-right and right-to-left text directions.</p>
<p>This property adds margin outside of the widget's normal size
request, the margin will be added in addition to the size from
<a class="link" href="GtkWidget.html#gtk-widget-set-size-request" title="gtk_widget_set_size_request ()"><code class="function">gtk_widget_set_size_request()</code></a> for example.</p>
<p>Owner: GtkWidget</p>
<p>Flags: Read / Write</p>
<p>Allowed values: [0,32767]</p>
<p>Default value: 0</p>
<p class="since">Since: <a class="link" href="api-index-3-12.html#api-index-3.12">3.12</a></p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--margin-top"></a><h3>The <code class="literal">“margin-top”</code> property</h3>
<pre class="programlisting">  “margin-top”               <span class="type">int</span></pre>
<p>Margin on top side of widget.</p>
<p>This property adds margin outside of the widget's normal size
request, the margin will be added in addition to the size from
<a class="link" href="GtkWidget.html#gtk-widget-set-size-request" title="gtk_widget_set_size_request ()"><code class="function">gtk_widget_set_size_request()</code></a> for example.</p>
<p>Owner: GtkWidget</p>
<p>Flags: Read / Write</p>
<p>Allowed values: [0,32767]</p>
<p>Default value: 0</p>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--name"></a><h3>The <code class="literal">“name”</code> property</h3>
<pre class="programlisting">  “name”                     <span class="type">char</span> *</pre>
<p>The name of the widget.</p>
<p>Owner: GtkWidget</p>
<p>Flags: Read / Write</p>
<p>Default value: NULL</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--no-show-all"></a><h3>The <code class="literal">“no-show-all”</code> property</h3>
<pre class="programlisting">  “no-show-all”              <span class="type">gboolean</span></pre>
<p>Whether gtk_widget_show_all() should not affect this widget.</p>
<p>Owner: GtkWidget</p>
<p>Flags: Read / Write</p>
<p>Default value: FALSE</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--opacity"></a><h3>The <code class="literal">“opacity”</code> property</h3>
<pre class="programlisting">  “opacity”                  <span class="type">double</span></pre>
<p>The requested opacity of the widget. See <a class="link" href="GtkWidget.html#gtk-widget-set-opacity" title="gtk_widget_set_opacity ()"><code class="function">gtk_widget_set_opacity()</code></a> for
more details about window opacity.</p>
<p>Before 3.8 this was only available in GtkWindow</p>
<p>Owner: GtkWidget</p>
<p>Flags: Read / Write</p>
<p>Allowed values: [0,1]</p>
<p>Default value: 1</p>
<p class="since">Since: <a class="link" href="api-index-3-8.html#api-index-3.8">3.8</a></p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--parent"></a><h3>The <code class="literal">“parent”</code> property</h3>
<pre class="programlisting">  “parent”                   <a class="link" href="GtkContainer.html" title="GtkContainer"><span class="type">GtkContainer</span></a> *</pre>
<p>The parent widget of this widget. Must be a Container widget.</p>
<p>Owner: GtkWidget</p>
<p>Flags: Read / Write</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--receives-default"></a><h3>The <code class="literal">“receives-default”</code> property</h3>
<pre class="programlisting">  “receives-default”         <span class="type">gboolean</span></pre>
<p>If TRUE, the widget will receive the default action when it is focused.</p>
<p>Owner: GtkWidget</p>
<p>Flags: Read / Write</p>
<p>Default value: FALSE</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--scale-factor"></a><h3>The <code class="literal">“scale-factor”</code> property</h3>
<pre class="programlisting">  “scale-factor”             <span class="type">int</span></pre>
<p>The scale factor of the widget. See <a class="link" href="GtkWidget.html#gtk-widget-get-scale-factor" title="gtk_widget_get_scale_factor ()"><code class="function">gtk_widget_get_scale_factor()</code></a> for
more details about widget scaling.</p>
<p>Owner: GtkWidget</p>
<p>Flags: Read</p>
<p>Allowed values: &gt;= 1</p>
<p>Default value: 1</p>
<p class="since">Since: <a class="link" href="api-index-3-10.html#api-index-3.10">3.10</a></p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--sensitive"></a><h3>The <code class="literal">“sensitive”</code> property</h3>
<pre class="programlisting">  “sensitive”                <span class="type">gboolean</span></pre>
<p>Whether the widget responds to input.</p>
<p>Owner: GtkWidget</p>
<p>Flags: Read / Write</p>
<p>Default value: TRUE</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--style"></a><h3>The <code class="literal">“style”</code> property</h3>
<pre class="programlisting">  “style”                    <a class="link" href="GtkStyle.html" title="GtkStyle"><span class="type">GtkStyle</span></a> *</pre>
<p>The style of the widget, which contains information about how it will look (colors, etc).</p>
<div class="warning">
<p><code class="literal">GtkWidget:style</code> is deprecated and should not be used in newly-written code.</p>
<p>Use <a class="link" href="GtkStyleContext.html" title="GtkStyleContext"><span class="type">GtkStyleContext</span></a> instead</p>
</div>
<p>Owner: GtkWidget</p>
<p>Flags: Read / Write</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--tooltip-markup"></a><h3>The <code class="literal">“tooltip-markup”</code> property</h3>
<pre class="programlisting">  “tooltip-markup”           <span class="type">char</span> *</pre>
<p>Sets the text of tooltip to be the given string, which is marked up
with the Pango text markup language.
Also see <a class="link" href="GtkTooltip.html#gtk-tooltip-set-markup" title="gtk_tooltip_set_markup ()"><code class="function">gtk_tooltip_set_markup()</code></a>.</p>
<p>This is a convenience property which will take care of getting the
tooltip shown if the given string is not <code class="literal">NULL</code>: <a class="link" href="GtkWidget.html#GtkWidget--has-tooltip" title="The “has-tooltip” property"><span class="type">“has-tooltip”</span></a>
will automatically be set to <code class="literal">TRUE</code> and there will be taken care of
<a class="link" href="GtkWidget.html#GtkWidget-query-tooltip" title="The “query-tooltip” signal"><span class="type">“query-tooltip”</span></a> in the default signal handler.</p>
<p>Note that if both <a class="link" href="GtkWidget.html#GtkWidget--tooltip-text" title="The “tooltip-text” property"><span class="type">“tooltip-text”</span></a> and <a class="link" href="GtkWidget.html#GtkWidget--tooltip-markup" title="The “tooltip-markup” property"><span class="type">“tooltip-markup”</span></a>
are set, the last one wins.</p>
<p>Owner: GtkWidget</p>
<p>Flags: Read / Write</p>
<p>Default value: NULL</p>
<p class="since">Since: 2.12</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--tooltip-text"></a><h3>The <code class="literal">“tooltip-text”</code> property</h3>
<pre class="programlisting">  “tooltip-text”             <span class="type">char</span> *</pre>
<p>Sets the text of tooltip to be the given string.</p>
<p>Also see <a class="link" href="GtkTooltip.html#gtk-tooltip-set-text" title="gtk_tooltip_set_text ()"><code class="function">gtk_tooltip_set_text()</code></a>.</p>
<p>This is a convenience property which will take care of getting the
tooltip shown if the given string is not <code class="literal">NULL</code>: <a class="link" href="GtkWidget.html#GtkWidget--has-tooltip" title="The “has-tooltip” property"><span class="type">“has-tooltip”</span></a>
will automatically be set to <code class="literal">TRUE</code> and there will be taken care of
<a class="link" href="GtkWidget.html#GtkWidget-query-tooltip" title="The “query-tooltip” signal"><span class="type">“query-tooltip”</span></a> in the default signal handler.</p>
<p>Note that if both <a class="link" href="GtkWidget.html#GtkWidget--tooltip-text" title="The “tooltip-text” property"><span class="type">“tooltip-text”</span></a> and <a class="link" href="GtkWidget.html#GtkWidget--tooltip-markup" title="The “tooltip-markup” property"><span class="type">“tooltip-markup”</span></a>
are set, the last one wins.</p>
<p>Owner: GtkWidget</p>
<p>Flags: Read / Write</p>
<p>Default value: NULL</p>
<p class="since">Since: 2.12</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--valign"></a><h3>The <code class="literal">“valign”</code> property</h3>
<pre class="programlisting">  “valign”                   <a class="link" href="GtkWidget.html#GtkAlign" title="enum GtkAlign"><span class="type">GtkAlign</span></a></pre>
<p>How to distribute vertical space if widget gets extra space, see <a class="link" href="GtkWidget.html#GtkAlign" title="enum GtkAlign"><span class="type">GtkAlign</span></a></p>
<p>Owner: GtkWidget</p>
<p>Flags: Read / Write</p>
<p>Default value: GTK_ALIGN_FILL</p>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--vexpand"></a><h3>The <code class="literal">“vexpand”</code> property</h3>
<pre class="programlisting">  “vexpand”                  <span class="type">gboolean</span></pre>
<p>Whether to expand vertically. See <a class="link" href="GtkWidget.html#gtk-widget-set-vexpand" title="gtk_widget_set_vexpand ()"><code class="function">gtk_widget_set_vexpand()</code></a>.</p>
<p>Owner: GtkWidget</p>
<p>Flags: Read / Write</p>
<p>Default value: FALSE</p>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--vexpand-set"></a><h3>The <code class="literal">“vexpand-set”</code> property</h3>
<pre class="programlisting">  “vexpand-set”              <span class="type">gboolean</span></pre>
<p>Whether to use the <a class="link" href="GtkWidget.html#GtkWidget--vexpand" title="The “vexpand” property"><span class="type">“vexpand”</span></a> property. See <a class="link" href="GtkWidget.html#gtk-widget-get-vexpand-set" title="gtk_widget_get_vexpand_set ()"><code class="function">gtk_widget_get_vexpand_set()</code></a>.</p>
<p>Owner: GtkWidget</p>
<p>Flags: Read / Write</p>
<p>Default value: FALSE</p>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--visible"></a><h3>The <code class="literal">“visible”</code> property</h3>
<pre class="programlisting">  “visible”                  <span class="type">gboolean</span></pre>
<p>Whether the widget is visible.</p>
<p>Owner: GtkWidget</p>
<p>Flags: Read / Write</p>
<p>Default value: FALSE</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--width-request"></a><h3>The <code class="literal">“width-request”</code> property</h3>
<pre class="programlisting">  “width-request”            <span class="type">int</span></pre>
<p>Override for width request of the widget, or -1 if natural request should be used.</p>
<p>Owner: GtkWidget</p>
<p>Flags: Read / Write</p>
<p>Allowed values: &gt;= -1</p>
<p>Default value: -1</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--window"></a><h3>The <code class="literal">“window”</code> property</h3>
<pre class="programlisting">  “window”                   <span class="type">GdkWindow</span> *</pre>
<p>The widget's window if it is realized, <code class="literal">NULL</code> otherwise.</p>
<p>Owner: GtkWidget</p>
<p>Flags: Read</p>
<p class="since">Since: 2.14</p>
</div>
</div>
<div class="refsect1">
<a name="GtkWidget.style-property-details"></a><h2>Style Property Details</h2>
<div class="refsect2">
<a name="GtkWidget--s-cursor-aspect-ratio"></a><h3>The <code class="literal">“cursor-aspect-ratio”</code> style property</h3>
<pre class="programlisting">  “cursor-aspect-ratio”      <span class="type">float</span></pre>
<p>Aspect ratio with which to draw insertion cursor.</p>
<p>Owner: GtkWidget</p>
<p>Flags: Read</p>
<p>Allowed values: [0,1]</p>
<p>Default value: 0.04</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--s-cursor-color"></a><h3>The <code class="literal">“cursor-color”</code> style property</h3>
<pre class="programlisting">  “cursor-color”             <span class="type">GdkColor</span> *</pre>
<p>The color with which to draw the insertion cursor in entries and
text views.</p>
<div class="warning">
<p><code class="literal">GtkWidget:cursor-color</code> has been deprecated since version 3.20 and should not be used in newly-written code.</p>
<p>Use the caret-color CSS property</p>
</div>
<p>Owner: GtkWidget</p>
<p>Flags: Read</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--s-focus-line-pattern"></a><h3>The <code class="literal">“focus-line-pattern”</code> style property</h3>
<pre class="programlisting">  “focus-line-pattern”       <span class="type">char</span> *</pre>
<p>The "focus-line-pattern" style property defines the dash pattern used to
draw the focus indicator. The character values are interpreted as pixel
widths of alternating on and off segments of the line.</p>
<div class="warning">
<p><code class="literal">GtkWidget:focus-line-pattern</code> has been deprecated since version 3.14 and should not be used in newly-written code.</p>
<p>use the outline-style CSS property instead.</p>
</div>
<p>Owner: GtkWidget</p>
<p>Flags: Read</p>
<p>Default value: "\001\001"</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--s-focus-line-width"></a><h3>The <code class="literal">“focus-line-width”</code> style property</h3>
<pre class="programlisting">  “focus-line-width”         <span class="type">int</span></pre>
<p>The "focus-line-width" style property defines the width,
in pixels, of the focus indicator line</p>
<div class="warning">
<p><code class="literal">GtkWidget:focus-line-width</code> has been deprecated since version 3.14 and should not be used in newly-written code.</p>
<p>use the outline-width and padding CSS properties instead.</p>
</div>
<p>Owner: GtkWidget</p>
<p>Flags: Read</p>
<p>Allowed values: &gt;= 0</p>
<p>Default value: 1</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--s-focus-padding"></a><h3>The <code class="literal">“focus-padding”</code> style property</h3>
<pre class="programlisting">  “focus-padding”            <span class="type">int</span></pre>
<p>The "focus-padding" style property defines the width, in pixels,
between focus indicator and the widget 'box'.</p>
<div class="warning">
<p><code class="literal">GtkWidget:focus-padding</code> has been deprecated since version 3.14 and should not be used in newly-written code.</p>
<p>use the outline-offset CSS properties instead.</p>
</div>
<p>Owner: GtkWidget</p>
<p>Flags: Read</p>
<p>Allowed values: &gt;= 0</p>
<p>Default value: 1</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--s-interior-focus"></a><h3>The <code class="literal">“interior-focus”</code> style property</h3>
<pre class="programlisting">  “interior-focus”           <span class="type">gboolean</span></pre>
<p>The "interior-focus" style property defines whether
to draw the focus indicator inside widgets.</p>
<div class="warning">
<p><code class="literal">GtkWidget:interior-focus</code> has been deprecated since version 3.14 and should not be used in newly-written code.</p>
<p>use the outline CSS properties instead.</p>
</div>
<p>Owner: GtkWidget</p>
<p>Flags: Read</p>
<p>Default value: TRUE</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--s-link-color"></a><h3>The <code class="literal">“link-color”</code> style property</h3>
<pre class="programlisting">  “link-color”               <span class="type">GdkColor</span> *</pre>
<p>The "link-color" style property defines the color of unvisited links.</p>
<div class="warning">
<p><code class="literal">GtkWidget:link-color</code> has been deprecated since version 3.12 and should not be used in newly-written code.</p>
<p>Links now use a separate state flags for selecting
    different theming, this style property is ignored</p>
</div>
<p>Owner: GtkWidget</p>
<p>Flags: Read</p>
<p class="since">Since: 2.10</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--s-scroll-arrow-hlength"></a><h3>The <code class="literal">“scroll-arrow-hlength”</code> style property</h3>
<pre class="programlisting">  “scroll-arrow-hlength”     <span class="type">int</span></pre>
<p>The "scroll-arrow-hlength" style property defines the length of
horizontal scroll arrows.</p>
<p>Owner: GtkWidget</p>
<p>Flags: Read</p>
<p>Allowed values: &gt;= 1</p>
<p>Default value: 16</p>
<p class="since">Since: 2.10</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--s-scroll-arrow-vlength"></a><h3>The <code class="literal">“scroll-arrow-vlength”</code> style property</h3>
<pre class="programlisting">  “scroll-arrow-vlength”     <span class="type">int</span></pre>
<p>The "scroll-arrow-vlength" style property defines the length of
vertical scroll arrows.</p>
<p>Owner: GtkWidget</p>
<p>Flags: Read</p>
<p>Allowed values: &gt;= 1</p>
<p>Default value: 16</p>
<p class="since">Since: 2.10</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--s-secondary-cursor-color"></a><h3>The <code class="literal">“secondary-cursor-color”</code> style property</h3>
<pre class="programlisting">  “secondary-cursor-color”   <span class="type">GdkColor</span> *</pre>
<p>The color with which to draw the secondary insertion cursor in entries and
text views when editing mixed right-to-left and left-to-right text.</p>
<div class="warning">
<p><code class="literal">GtkWidget:secondary-cursor-color</code> has been deprecated since version 3.20 and should not be used in newly-written code.</p>
<p>Use the -gtk-secondary-caret-color CSS property</p>
</div>
<p>Owner: GtkWidget</p>
<p>Flags: Read</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--s-separator-height"></a><h3>The <code class="literal">“separator-height”</code> style property</h3>
<pre class="programlisting">  “separator-height”         <span class="type">int</span></pre>
<p>The "separator-height" style property defines the height of separators.
This property only takes effect if the "wide-separators" style property is <code class="literal">TRUE</code>.</p>
<div class="warning">
<p><code class="literal">GtkWidget:separator-height</code> has been deprecated since version 3.20 and should not be used in newly-written code.</p>
<p>Use the standard min-height CSS property on the separator
  elements to size separators; the value of this style property is ignored.</p>
</div>
<p>Owner: GtkWidget</p>
<p>Flags: Read</p>
<p>Allowed values: &gt;= 0</p>
<p>Default value: 0</p>
<p class="since">Since: 2.10</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--s-separator-width"></a><h3>The <code class="literal">“separator-width”</code> style property</h3>
<pre class="programlisting">  “separator-width”          <span class="type">int</span></pre>
<p>The "separator-width" style property defines the width of separators.
This property only takes effect if the "wide-separators" style property is <code class="literal">TRUE</code>.</p>
<div class="warning">
<p><code class="literal">GtkWidget:separator-width</code> has been deprecated since version 3.20 and should not be used in newly-written code.</p>
<p>Use the standard min-width CSS property on the separator
  elements to size separators; the value of this style property is ignored.</p>
</div>
<p>Owner: GtkWidget</p>
<p>Flags: Read</p>
<p>Allowed values: &gt;= 0</p>
<p>Default value: 0</p>
<p class="since">Since: 2.10</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--s-text-handle-height"></a><h3>The <code class="literal">“text-handle-height”</code> style property</h3>
<pre class="programlisting">  “text-handle-height”       <span class="type">int</span></pre>
<p>Height of text selection handles.</p>
<p>Owner: GtkWidget</p>
<p>Flags: Read</p>
<p>Allowed values: &gt;= 1</p>
<p>Default value: 20</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--s-text-handle-width"></a><h3>The <code class="literal">“text-handle-width”</code> style property</h3>
<pre class="programlisting">  “text-handle-width”        <span class="type">int</span></pre>
<p>Width of text selection handles.</p>
<p>Owner: GtkWidget</p>
<p>Flags: Read</p>
<p>Allowed values: &gt;= 1</p>
<p>Default value: 16</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--s-visited-link-color"></a><h3>The <code class="literal">“visited-link-color”</code> style property</h3>
<pre class="programlisting">  “visited-link-color”       <span class="type">GdkColor</span> *</pre>
<p>The "visited-link-color" style property defines the color of visited links.</p>
<div class="warning">
<p><code class="literal">GtkWidget:visited-link-color</code> has been deprecated since version 3.12 and should not be used in newly-written code.</p>
<p>Links now use a separate state flags for selecting
    different theming, this style property is ignored</p>
</div>
<p>Owner: GtkWidget</p>
<p>Flags: Read</p>
<p class="since">Since: 2.10</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--s-wide-separators"></a><h3>The <code class="literal">“wide-separators”</code> style property</h3>
<pre class="programlisting">  “wide-separators”          <span class="type">gboolean</span></pre>
<p>The "wide-separators" style property defines whether separators have
configurable width and should be drawn using a box instead of a line.</p>
<div class="warning">
<p><code class="literal">GtkWidget:wide-separators</code> has been deprecated since version 3.20 and should not be used in newly-written code.</p>
<p>Use CSS properties on the separator elements to style
  separators; the value of this style property is ignored.</p>
</div>
<p>Owner: GtkWidget</p>
<p>Flags: Read</p>
<p>Default value: FALSE</p>
<p class="since">Since: 2.10</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget--s-window-dragging"></a><h3>The <code class="literal">“window-dragging”</code> style property</h3>
<pre class="programlisting">  “window-dragging”          <span class="type">gboolean</span></pre>
<p>Whether windows can be dragged and maximized by clicking on empty areas.</p>
<p>Owner: GtkWidget</p>
<p>Flags: Read</p>
<p>Default value: FALSE</p>
</div>
</div>
<div class="refsect1">
<a name="GtkWidget.signal-details"></a><h2>Signal Details</h2>
<div class="refsect2">
<a name="GtkWidget-accel-closures-changed"></a><h3>The <code class="literal">“accel-closures-changed”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget,
               <span class="type">gpointer</span>   user_data)</pre>
<div class="refsect3">
<a name="GtkWidget-accel-closures-changed.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-button-press-event"></a><h3>The <code class="literal">“button-press-event”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget,
               <span class="type">GdkEvent</span>  *event,
               <span class="type">gpointer</span>   user_data)</pre>
<p>The ::button-press-event signal will be emitted when a button
(typically from a mouse) is pressed.</p>
<p>To receive this signal, the <span class="type">GdkWindow</span> associated to the
widget needs to enable the <span class="type">GDK_BUTTON_PRESS_MASK</span> mask.</p>
<p>This signal will be sent to the grab widget if there is one.</p>
<div class="refsect3">
<a name="GtkWidget-button-press-event.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>the <span class="type">GdkEventButton</span> which triggered
this signal. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> Gdk.EventButton]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="GtkWidget-button-press-event.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> to stop other handlers from being invoked for the event.
<code class="literal">FALSE</code> to propagate the event further.</p>
</div>
<p>Flags: Run Last</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-button-release-event"></a><h3>The <code class="literal">“button-release-event”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget,
               <span class="type">GdkEvent</span>  *event,
               <span class="type">gpointer</span>   user_data)</pre>
<p>The ::button-release-event signal will be emitted when a button
(typically from a mouse) is released.</p>
<p>To receive this signal, the <span class="type">GdkWindow</span> associated to the
widget needs to enable the <span class="type">GDK_BUTTON_RELEASE_MASK</span> mask.</p>
<p>This signal will be sent to the grab widget if there is one.</p>
<div class="refsect3">
<a name="GtkWidget-button-release-event.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>the <span class="type">GdkEventButton</span> which triggered
this signal. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> Gdk.EventButton]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="GtkWidget-button-release-event.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> to stop other handlers from being invoked for the event.
<code class="literal">FALSE</code> to propagate the event further.</p>
</div>
<p>Flags: Run Last</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-can-activate-accel"></a><h3>The <code class="literal">“can-activate-accel”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget,
               <span class="type">guint</span>      signal_id,
               <span class="type">gpointer</span>   user_data)</pre>
<p>Determines whether an accelerator that activates the signal
identified by <em class="parameter"><code>signal_id</code></em>
 can currently be activated.
This signal is present to allow applications and derived
widgets to override the default <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> handling
for determining whether an accelerator can be activated.</p>
<div class="refsect3">
<a name="GtkWidget-can-activate-accel.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>signal_id</p></td>
<td class="parameter_description"><p>the ID of a signal installed on <em class="parameter"><code>widget</code></em>
</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="GtkWidget-can-activate-accel.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if the signal can be activated.</p>
</div>
<p>Flags: Run Last</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-child-notify"></a><h3>The <code class="literal">“child-notify”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a>  *widget,
               <span class="type">GParamSpec</span> *child_property,
               <span class="type">gpointer</span>    user_data)</pre>
<p>The ::child-notify signal is emitted for each
child property  that has
changed on an object. The signal's detail holds the property name.</p>
<div class="refsect3">
<a name="GtkWidget-child-notify.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>child_property</p></td>
<td class="parameter_description"><p>the <span class="type">GParamSpec</span> of the changed child property</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p>Flags: No Hooks</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-composited-changed"></a><h3>The <code class="literal">“composited-changed”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget,
               <span class="type">gpointer</span>   user_data)</pre>
<p>The ::composited-changed signal is emitted when the composited
status of <em class="parameter"><code>widgets</code></em>
 screen changes.
See <code class="function">gdk_screen_is_composited()</code>.</p>
<div class="warning">
<p><code class="literal">GtkWidget::composited-changed</code> has been deprecated since version 3.22 and should not be used in newly-written code.</p>
<p>Use GdkScreen::composited-changed instead.</p>
</div>
<div class="refsect3">
<a name="GtkWidget-composited-changed.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object on which the signal is emitted</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p>Flags: Action</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-configure-event"></a><h3>The <code class="literal">“configure-event”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget,
               <span class="type">GdkEvent</span>  *event,
               <span class="type">gpointer</span>   user_data)</pre>
<p>The ::configure-event signal will be emitted when the size, position or
stacking of the <em class="parameter"><code>widget</code></em>
's window has changed.</p>
<p>To receive this signal, the <span class="type">GdkWindow</span> associated to the widget needs
to enable the <span class="type">GDK_STRUCTURE_MASK</span> mask. GDK will enable this mask
automatically for all new windows.</p>
<div class="refsect3">
<a name="GtkWidget-configure-event.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>the <span class="type">GdkEventConfigure</span> which triggered
this signal. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> Gdk.EventConfigure]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="GtkWidget-configure-event.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> to stop other handlers from being invoked for the event.
<code class="literal">FALSE</code> to propagate the event further.</p>
</div>
<p>Flags: Run Last</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-damage-event"></a><h3>The <code class="literal">“damage-event”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget,
               <span class="type">GdkEvent</span>  *event,
               <span class="type">gpointer</span>   user_data)</pre>
<p>Emitted when a redirected window belonging to <em class="parameter"><code>widget</code></em>
 gets drawn into.
The region/area members of the event shows what area of the redirected
drawable was drawn into.</p>
<div class="refsect3">
<a name="GtkWidget-damage-event.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>the <span class="type">GdkEventExpose</span> event. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> Gdk.EventExpose]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="GtkWidget-damage-event.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> to stop other handlers from being invoked for the event.
<code class="literal">FALSE</code> to propagate the event further.</p>
</div>
<p>Flags: Run Last</p>
<p class="since">Since: 2.14</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-delete-event"></a><h3>The <code class="literal">“delete-event”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget,
               <span class="type">GdkEvent</span>  *event,
               <span class="type">gpointer</span>   user_data)</pre>
<p>The ::delete-event signal is emitted if a user requests that
a toplevel window is closed. The default handler for this signal
destroys the window. Connecting <a class="link" href="GtkWidget.html#gtk-widget-hide-on-delete" title="gtk_widget_hide_on_delete ()"><code class="function">gtk_widget_hide_on_delete()</code></a> to
this signal will cause the window to be hidden instead, so that
it can later be shown again without reconstructing it.</p>
<div class="refsect3">
<a name="GtkWidget-delete-event.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>the event which triggered this signal</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="GtkWidget-delete-event.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> to stop other handlers from being invoked for the event.
<code class="literal">FALSE</code> to propagate the event further.</p>
</div>
<p>Flags: Run Last</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-destroy"></a><h3>The <code class="literal">“destroy”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *object,
               <span class="type">gpointer</span>   user_data)</pre>
<p>Signals that all holders of a reference to the widget should release
the reference that they hold. May result in finalization of the widget
if all references are released.</p>
<p>This signal is not suitable for saving widget state.</p>
<div class="refsect3">
<a name="GtkWidget-destroy.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>object</p></td>
<td class="parameter_description"><p>the object which received the signal</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p>Flags: No Hooks</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-destroy-event"></a><h3>The <code class="literal">“destroy-event”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget,
               <span class="type">GdkEvent</span>  *event,
               <span class="type">gpointer</span>   user_data)</pre>
<p>The ::destroy-event signal is emitted when a <span class="type">GdkWindow</span> is destroyed.
You rarely get this signal, because most widgets disconnect themselves
from their window before they destroy it, so no widget owns the
window at destroy time.</p>
<p>To receive this signal, the <span class="type">GdkWindow</span> associated to the widget needs
to enable the <span class="type">GDK_STRUCTURE_MASK</span> mask. GDK will enable this mask
automatically for all new windows.</p>
<div class="refsect3">
<a name="GtkWidget-destroy-event.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>the event which triggered this signal</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="GtkWidget-destroy-event.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> to stop other handlers from being invoked for the event.
<code class="literal">FALSE</code> to propagate the event further.</p>
</div>
<p>Flags: Run Last</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-direction-changed"></a><h3>The <code class="literal">“direction-changed”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a>       *widget,
               <a class="link" href="GtkWidget.html#GtkTextDirection" title="enum GtkTextDirection"><span class="type">GtkTextDirection</span></a> previous_direction,
               <span class="type">gpointer</span>         user_data)</pre>
<p>The ::direction-changed signal is emitted when the text direction
of a widget changes.</p>
<div class="refsect3">
<a name="GtkWidget-direction-changed.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object on which the signal is emitted</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>previous_direction</p></td>
<td class="parameter_description"><p>the previous text direction of <em class="parameter"><code>widget</code></em>
</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p>Flags: Run First</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-drag-begin"></a><h3>The <code class="literal">“drag-begin”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a>      *widget,
               <span class="type">GdkDragContext</span> *context,
               <span class="type">gpointer</span>        user_data)</pre>
<p>The ::drag-begin signal is emitted on the drag source when a drag is
started. A typical reason to connect to this signal is to set up a
custom drag icon with e.g. <a class="link" href="gtk3-Drag-and-Drop.html#gtk-drag-source-set-icon-pixbuf" title="gtk_drag_source_set_icon_pixbuf ()"><code class="function">gtk_drag_source_set_icon_pixbuf()</code></a>.</p>
<p>Note that some widgets set up a drag icon in the default handler of
this signal, so you may have to use <code class="function">g_signal_connect_after()</code> to
override what the default handler did.</p>
<div class="refsect3">
<a name="GtkWidget-drag-begin.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>context</p></td>
<td class="parameter_description"><p>the drag context</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p>Flags: Run Last</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-drag-data-delete"></a><h3>The <code class="literal">“drag-data-delete”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a>      *widget,
               <span class="type">GdkDragContext</span> *context,
               <span class="type">gpointer</span>        user_data)</pre>
<p>The ::drag-data-delete signal is emitted on the drag source when a drag
with the action <code class="literal">GDK_ACTION_MOVE</code> is successfully completed. The signal
handler is responsible for deleting the data that has been dropped. What
"delete" means depends on the context of the drag operation.</p>
<div class="refsect3">
<a name="GtkWidget-drag-data-delete.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>context</p></td>
<td class="parameter_description"><p>the drag context</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p>Flags: Run Last</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-drag-data-get"></a><h3>The <code class="literal">“drag-data-get”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a>        *widget,
               <span class="type">GdkDragContext</span>   *context,
               <a class="link" href="gtk3-Selections.html#GtkSelectionData"><span class="type">GtkSelectionData</span></a> *data,
               <span class="type">guint</span>             info,
               <span class="type">guint</span>             time,
               <span class="type">gpointer</span>          user_data)</pre>
<p>The ::drag-data-get signal is emitted on the drag source when the drop
site requests the data which is dragged. It is the responsibility of
the signal handler to fill <em class="parameter"><code>data</code></em>
 with the data in the format which
is indicated by <em class="parameter"><code>info</code></em>
. See <a class="link" href="gtk3-Selections.html#gtk-selection-data-set" title="gtk_selection_data_set ()"><code class="function">gtk_selection_data_set()</code></a> and
<a class="link" href="gtk3-Selections.html#gtk-selection-data-set-text" title="gtk_selection_data_set_text ()"><code class="function">gtk_selection_data_set_text()</code></a>.</p>
<div class="refsect3">
<a name="GtkWidget-drag-data-get.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>context</p></td>
<td class="parameter_description"><p>the drag context</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>data</p></td>
<td class="parameter_description"><p>the <a class="link" href="gtk3-Selections.html#GtkSelectionData"><span class="type">GtkSelectionData</span></a> to be filled with the dragged data</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>info</p></td>
<td class="parameter_description"><p>the info that has been registered with the target in the
<a class="link" href="gtk3-Selections.html#GtkTargetList"><span class="type">GtkTargetList</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>time</p></td>
<td class="parameter_description"><p>the timestamp at which the data was requested</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p>Flags: Run Last</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-drag-data-received"></a><h3>The <code class="literal">“drag-data-received”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a>        *widget,
               <span class="type">GdkDragContext</span>   *context,
               <span class="type">int</span>               x,
               <span class="type">int</span>               y,
               <a class="link" href="gtk3-Selections.html#GtkSelectionData"><span class="type">GtkSelectionData</span></a> *data,
               <span class="type">guint</span>             info,
               <span class="type">guint</span>             time,
               <span class="type">gpointer</span>          user_data)</pre>
<p>The ::drag-data-received signal is emitted on the drop site when the
dragged data has been received. If the data was received in order to
determine whether the drop will be accepted, the handler is expected
to call <code class="function">gdk_drag_status()</code> and not finish the drag.
If the data was received in response to a <a class="link" href="GtkWidget.html#GtkWidget-drag-drop" title="The “drag-drop” signal"><span class="type">“drag-drop”</span></a> signal
(and this is the last target to be received), the handler for this
signal is expected to process the received data and then call
<a class="link" href="gtk3-Drag-and-Drop.html#gtk-drag-finish" title="gtk_drag_finish ()"><code class="function">gtk_drag_finish()</code></a>, setting the <em class="parameter"><code>success</code></em>
 parameter depending on
whether the data was processed successfully.</p>
<p>Applications must create some means to determine why the signal was emitted

and therefore whether to call <code class="function">gdk_drag_status()</code> or <a class="link" href="gtk3-Drag-and-Drop.html#gtk-drag-finish" title="gtk_drag_finish ()"><code class="function">gtk_drag_finish()</code></a>. </p>
<p>The handler may inspect the selected action with
<code class="function">gdk_drag_context_get_selected_action()</code> before calling
<a class="link" href="gtk3-Drag-and-Drop.html#gtk-drag-finish" title="gtk_drag_finish ()"><code class="function">gtk_drag_finish()</code></a>, e.g. to implement <code class="literal">GDK_ACTION_ASK</code> as
shown in the following example:</p>
<div class="informalexample">
  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
    <tbody>
      <tr>
        <td class="listing_lines" align="right"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41</pre></td>
        <td class="listing_code"><pre class="programlisting"><span class="kt">void</span>
<span class="nf">drag_data_received</span> <span class="p">(</span><span class="n">GtkWidget</span>          <span class="o">*</span><span class="n">widget</span><span class="p">,</span>
                    <span class="n">GdkDragContext</span>     <span class="o">*</span><span class="n">context</span><span class="p">,</span>
                    <span class="n">gint</span>                <span class="n">x</span><span class="p">,</span>
                    <span class="n">gint</span>                <span class="n">y</span><span class="p">,</span>
                    <span class="n">GtkSelectionData</span>   <span class="o">*</span><span class="n">data</span><span class="p">,</span>
                    <span class="n">guint</span>               <span class="n">info</span><span class="p">,</span>
                    <span class="n">guint</span>               <span class="n">time</span><span class="p">)</span>
<span class="p">{</span>
  <span class="k">if</span> <span class="p">((</span><span class="n">data</span><span class="o">-&gt;</span><span class="n">length</span> <span class="o">&gt;=</span> <span class="mi">0</span><span class="p">)</span> <span class="o">&amp;&amp;</span> <span class="p">(</span><span class="n">data</span><span class="o">-&gt;</span><span class="n">format</span> <span class="o">==</span> <span class="mi">8</span><span class="p">))</span>
    <span class="p">{</span>
      <span class="n">GdkDragAction</span> <span class="n">action</span><span class="p">;</span>

      <span class="c1">// handle data here</span>

      <span class="n">action</span> <span class="o">=</span> <span class="n">gdk_drag_context_get_selected_action</span> <span class="p">(</span><span class="n">context</span><span class="p">);</span>
      <span class="k">if</span> <span class="p">(</span><span class="n">action</span> <span class="o">==</span> <span class="n">GDK_ACTION_ASK</span><span class="p">)</span>
        <span class="p">{</span>
          <span class="n">GtkWidget</span> <span class="o">*</span><span class="n">dialog</span><span class="p">;</span>
          <span class="n">gint</span> <span class="n">response</span><span class="p">;</span>

          <span class="n">dialog</span> <span class="o">=</span> <span class="n">gtk_message_dialog_new</span> <span class="p">(</span><span class="nb">NULL</span><span class="p">,</span>
                                           <span class="n">GTK_DIALOG_MODAL</span> <span class="o">|</span>
                                           <span class="n">GTK_DIALOG_DESTROY_WITH_PARENT</span><span class="p">,</span>
                                           <span class="n">GTK_MESSAGE_INFO</span><span class="p">,</span>
                                           <span class="n">GTK_BUTTONS_YES_NO</span><span class="p">,</span>
                                           <span class="s">&quot;Move the data ?</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">);</span>
          <span class="n">response</span> <span class="o">=</span> <span class="n">gtk_dialog_run</span> <span class="p">(</span><span class="n">GTK_DIALOG</span> <span class="p">(</span><span class="n">dialog</span><span class="p">));</span>
          <span class="n">gtk_widget_destroy</span> <span class="p">(</span><span class="n">dialog</span><span class="p">);</span>

          <span class="k">if</span> <span class="p">(</span><span class="n">response</span> <span class="o">==</span> <span class="n">GTK_RESPONSE_YES</span><span class="p">)</span>
            <span class="n">action</span> <span class="o">=</span> <span class="n">GDK_ACTION_MOVE</span><span class="p">;</span>
          <span class="k">else</span>
            <span class="n">action</span> <span class="o">=</span> <span class="n">GDK_ACTION_COPY</span><span class="p">;</span>
         <span class="p">}</span>

      <span class="n">gtk_drag_finish</span> <span class="p">(</span><span class="n">context</span><span class="p">,</span> <span class="n">TRUE</span><span class="p">,</span> <span class="n">action</span> <span class="o">==</span> <span class="n">GDK_ACTION_MOVE</span><span class="p">,</span> <span class="n">time</span><span class="p">);</span>
    <span class="p">}</span>
  <span class="k">else</span>
    <span class="n">gtk_drag_finish</span> <span class="p">(</span><span class="n">context</span><span class="p">,</span> <span class="n">FALSE</span><span class="p">,</span> <span class="n">FALSE</span><span class="p">,</span> <span class="n">time</span><span class="p">);</span>
 <span class="p">}</span></pre></td>
      </tr>
    </tbody>
  </table>
</div>

<p></p>
<div class="refsect3">
<a name="GtkWidget-drag-data-received.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>context</p></td>
<td class="parameter_description"><p>the drag context</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>x</p></td>
<td class="parameter_description"><p>where the drop happened</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>y</p></td>
<td class="parameter_description"><p>where the drop happened</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>data</p></td>
<td class="parameter_description"><p>the received data</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>info</p></td>
<td class="parameter_description"><p>the info that has been registered with the target in the
<a class="link" href="gtk3-Selections.html#GtkTargetList"><span class="type">GtkTargetList</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>time</p></td>
<td class="parameter_description"><p>the timestamp at which the data was received</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p>Flags: Run Last</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-drag-drop"></a><h3>The <code class="literal">“drag-drop”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a>      *widget,
               <span class="type">GdkDragContext</span> *context,
               <span class="type">int</span>             x,
               <span class="type">int</span>             y,
               <span class="type">guint</span>           time,
               <span class="type">gpointer</span>        user_data)</pre>
<p>The ::drag-drop signal is emitted on the drop site when the user drops
the data onto the widget. The signal handler must determine whether
the cursor position is in a drop zone or not. If it is not in a drop
zone, it returns <code class="literal">FALSE</code> and no further processing is necessary.
Otherwise, the handler returns <code class="literal">TRUE</code>. In this case, the handler must
ensure that <a class="link" href="gtk3-Drag-and-Drop.html#gtk-drag-finish" title="gtk_drag_finish ()"><code class="function">gtk_drag_finish()</code></a> is called to let the source know that
the drop is done. The call to <a class="link" href="gtk3-Drag-and-Drop.html#gtk-drag-finish" title="gtk_drag_finish ()"><code class="function">gtk_drag_finish()</code></a> can be done either
directly or in a <a class="link" href="GtkWidget.html#GtkWidget-drag-data-received" title="The “drag-data-received” signal"><span class="type">“drag-data-received”</span></a> handler which gets
triggered by calling <a class="link" href="gtk3-Drag-and-Drop.html#gtk-drag-get-data" title="gtk_drag_get_data ()"><code class="function">gtk_drag_get_data()</code></a> to receive the data for one
or more of the supported targets.</p>
<div class="refsect3">
<a name="GtkWidget-drag-drop.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>context</p></td>
<td class="parameter_description"><p>the drag context</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>x</p></td>
<td class="parameter_description"><p>the x coordinate of the current cursor position</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>y</p></td>
<td class="parameter_description"><p>the y coordinate of the current cursor position</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>time</p></td>
<td class="parameter_description"><p>the timestamp of the motion event</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="GtkWidget-drag-drop.returns"></a><h4>Returns</h4>
<p> whether the cursor position is in a drop zone</p>
</div>
<p>Flags: Run Last</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-drag-end"></a><h3>The <code class="literal">“drag-end”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a>      *widget,
               <span class="type">GdkDragContext</span> *context,
               <span class="type">gpointer</span>        user_data)</pre>
<p>The ::drag-end signal is emitted on the drag source when a drag is
finished.  A typical reason to connect to this signal is to undo
things done in <a class="link" href="GtkWidget.html#GtkWidget-drag-begin" title="The “drag-begin” signal"><span class="type">“drag-begin”</span></a>.</p>
<div class="refsect3">
<a name="GtkWidget-drag-end.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>context</p></td>
<td class="parameter_description"><p>the drag context</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p>Flags: Run Last</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-drag-failed"></a><h3>The <code class="literal">“drag-failed”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a>      *widget,
               <span class="type">GdkDragContext</span> *context,
               <a class="link" href="gtk3-Drag-and-Drop.html#GtkDragResult" title="enum GtkDragResult"><span class="type">GtkDragResult</span></a>   result,
               <span class="type">gpointer</span>        user_data)</pre>
<p>The ::drag-failed signal is emitted on the drag source when a drag has
failed. The signal handler may hook custom code to handle a failed DnD
operation based on the type of error, it returns <code class="literal">TRUE</code> is the failure has
been already handled (not showing the default "drag operation failed"
animation), otherwise it returns <code class="literal">FALSE</code>.</p>
<div class="refsect3">
<a name="GtkWidget-drag-failed.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>context</p></td>
<td class="parameter_description"><p>the drag context</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>result</p></td>
<td class="parameter_description"><p>the result of the drag operation</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="GtkWidget-drag-failed.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if the failed drag operation has been already handled.</p>
</div>
<p>Flags: Run Last</p>
<p class="since">Since: 2.12</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-drag-leave"></a><h3>The <code class="literal">“drag-leave”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a>      *widget,
               <span class="type">GdkDragContext</span> *context,
               <span class="type">guint</span>           time,
               <span class="type">gpointer</span>        user_data)</pre>
<p>The ::drag-leave signal is emitted on the drop site when the cursor
leaves the widget. A typical reason to connect to this signal is to
undo things done in <a class="link" href="GtkWidget.html#GtkWidget-drag-motion" title="The “drag-motion” signal"><span class="type">“drag-motion”</span></a>, e.g. undo highlighting
with <a class="link" href="gtk3-Drag-and-Drop.html#gtk-drag-unhighlight" title="gtk_drag_unhighlight ()"><code class="function">gtk_drag_unhighlight()</code></a>.</p>
<p>Likewise, the <a class="link" href="GtkWidget.html#GtkWidget-drag-leave" title="The “drag-leave” signal"><span class="type">“drag-leave”</span></a> signal is also emitted before the

::drag-drop signal, for instance to allow cleaning up of a preview item

created in the <a class="link" href="GtkWidget.html#GtkWidget-drag-motion" title="The “drag-motion” signal"><span class="type">“drag-motion”</span></a> signal handler.</p>
<div class="refsect3">
<a name="GtkWidget-drag-leave.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>context</p></td>
<td class="parameter_description"><p>the drag context</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>time</p></td>
<td class="parameter_description"><p>the timestamp of the motion event</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p>Flags: Run Last</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-drag-motion"></a><h3>The <code class="literal">“drag-motion”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a>      *widget,
               <span class="type">GdkDragContext</span> *context,
               <span class="type">int</span>             x,
               <span class="type">int</span>             y,
               <span class="type">guint</span>           time,
               <span class="type">gpointer</span>        user_data)</pre>
<p>The ::drag-motion signal is emitted on the drop site when the user
moves the cursor over the widget during a drag. The signal handler
must determine whether the cursor position is in a drop zone or not.
If it is not in a drop zone, it returns <code class="literal">FALSE</code> and no further processing
is necessary. Otherwise, the handler returns <code class="literal">TRUE</code>. In this case, the
handler is responsible for providing the necessary information for
displaying feedback to the user, by calling <code class="function">gdk_drag_status()</code>.</p>
<p>If the decision whether the drop will be accepted or rejected can't be
made based solely on the cursor position and the type of the data, the
handler may inspect the dragged data by calling <a class="link" href="gtk3-Drag-and-Drop.html#gtk-drag-get-data" title="gtk_drag_get_data ()"><code class="function">gtk_drag_get_data()</code></a> and
defer the <code class="function">gdk_drag_status()</code> call to the <a class="link" href="GtkWidget.html#GtkWidget-drag-data-received" title="The “drag-data-received” signal"><span class="type">“drag-data-received”</span></a>
handler. Note that you must pass <a class="link" href="gtk3-Drag-and-Drop.html#GTK-DEST-DEFAULT-DROP:CAPS"><span class="type">GTK_DEST_DEFAULT_DROP</span></a>,
<a class="link" href="gtk3-Drag-and-Drop.html#GTK-DEST-DEFAULT-MOTION:CAPS"><span class="type">GTK_DEST_DEFAULT_MOTION</span></a> or <a class="link" href="gtk3-Drag-and-Drop.html#GTK-DEST-DEFAULT-ALL:CAPS"><span class="type">GTK_DEST_DEFAULT_ALL</span></a> to <a class="link" href="gtk3-Drag-and-Drop.html#gtk-drag-dest-set" title="gtk_drag_dest_set ()"><code class="function">gtk_drag_dest_set()</code></a>
when using the drag-motion signal that way.</p>
<p>Also note that there is no drag-enter signal. The drag receiver has to
keep track of whether he has received any drag-motion signals since the
last <a class="link" href="GtkWidget.html#GtkWidget-drag-leave" title="The “drag-leave” signal"><span class="type">“drag-leave”</span></a> and if not, treat the drag-motion signal as
an "enter" signal. Upon an "enter", the handler will typically highlight
the drop site with <a class="link" href="gtk3-Drag-and-Drop.html#gtk-drag-highlight" title="gtk_drag_highlight ()"><code class="function">gtk_drag_highlight()</code></a>.</p>
<div class="informalexample">
  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
    <tbody>
      <tr>
        <td class="listing_lines" align="right"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63</pre></td>
        <td class="listing_code"><pre class="programlisting"><span class="k">static</span> <span class="kt">void</span>
<span class="n">drag_motion</span> <span class="p">(</span><span class="n">GtkWidget</span>      <span class="o">*</span><span class="n">widget</span><span class="p">,</span>
             <span class="n">GdkDragContext</span> <span class="o">*</span><span class="n">context</span><span class="p">,</span>
             <span class="n">gint</span>            <span class="n">x</span><span class="p">,</span>
             <span class="n">gint</span>            <span class="n">y</span><span class="p">,</span>
             <span class="n">guint</span>           <span class="n">time</span><span class="p">)</span>
<span class="p">{</span>
  <span class="n">GdkAtom</span> <span class="n">target</span><span class="p">;</span>

  <span class="n">PrivateData</span> <span class="o">*</span><span class="n">private_data</span> <span class="o">=</span> <span class="n">GET_PRIVATE_DATA</span> <span class="p">(</span><span class="n">widget</span><span class="p">);</span>

  <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="n">private_data</span><span class="o">-&gt;</span><span class="n">drag_highlight</span><span class="p">)</span>
   <span class="p">{</span>
     <span class="n">private_data</span><span class="o">-&gt;</span><span class="n">drag_highlight</span> <span class="o">=</span> <span class="mi">1</span><span class="p">;</span>
     <span class="n">gtk_drag_highlight</span> <span class="p">(</span><span class="n">widget</span><span class="p">);</span>
   <span class="p">}</span>

  <span class="n">target</span> <span class="o">=</span> <span class="n">gtk_drag_dest_find_target</span> <span class="p">(</span><span class="n">widget</span><span class="p">,</span> <span class="n">context</span><span class="p">,</span> <span class="nb">NULL</span><span class="p">);</span>
  <span class="k">if</span> <span class="p">(</span><span class="n">target</span> <span class="o">==</span> <span class="n">GDK_NONE</span><span class="p">)</span>
    <span class="n">gdk_drag_status</span> <span class="p">(</span><span class="n">context</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">time</span><span class="p">);</span>
  <span class="k">else</span>
   <span class="p">{</span>
     <span class="n">private_data</span><span class="o">-&gt;</span><span class="n">pending_status</span>
        <span class="o">=</span> <span class="n">gdk_drag_context_get_suggested_action</span> <span class="p">(</span><span class="n">context</span><span class="p">);</span>
     <span class="n">gtk_drag_get_data</span> <span class="p">(</span><span class="n">widget</span><span class="p">,</span> <span class="n">context</span><span class="p">,</span> <span class="n">target</span><span class="p">,</span> <span class="n">time</span><span class="p">);</span>
   <span class="p">}</span>

  <span class="k">return</span> <span class="n">TRUE</span><span class="p">;</span>
<span class="p">}</span>

<span class="k">static</span> <span class="kt">void</span>
<span class="n">drag_data_received</span> <span class="p">(</span><span class="n">GtkWidget</span>        <span class="o">*</span><span class="n">widget</span><span class="p">,</span>
                    <span class="n">GdkDragContext</span>   <span class="o">*</span><span class="n">context</span><span class="p">,</span>
                    <span class="n">gint</span>              <span class="n">x</span><span class="p">,</span>
                    <span class="n">gint</span>              <span class="n">y</span><span class="p">,</span>
                    <span class="n">GtkSelectionData</span> <span class="o">*</span><span class="n">selection_data</span><span class="p">,</span>
                    <span class="n">guint</span>             <span class="n">info</span><span class="p">,</span>
                    <span class="n">guint</span>             <span class="n">time</span><span class="p">)</span>
<span class="p">{</span>
  <span class="n">PrivateData</span> <span class="o">*</span><span class="n">private_data</span> <span class="o">=</span> <span class="n">GET_PRIVATE_DATA</span> <span class="p">(</span><span class="n">widget</span><span class="p">);</span>

  <span class="k">if</span> <span class="p">(</span><span class="n">private_data</span><span class="o">-&gt;</span><span class="n">suggested_action</span><span class="p">)</span>
   <span class="p">{</span>
     <span class="n">private_data</span><span class="o">-&gt;</span><span class="n">suggested_action</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>

     <span class="c1">// We are getting this data due to a request in drag_motion,</span>
     <span class="c1">// rather than due to a request in drag_drop, so we are just</span>
     <span class="c1">// supposed to call gdk_drag_status(), not actually paste in</span>
     <span class="c1">// the data.</span>

     <span class="n">str</span> <span class="o">=</span> <span class="n">gtk_selection_data_get_text</span> <span class="p">(</span><span class="n">selection_data</span><span class="p">);</span>
     <span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="n">data_is_acceptable</span> <span class="p">(</span><span class="n">str</span><span class="p">))</span>
       <span class="n">gdk_drag_status</span> <span class="p">(</span><span class="n">context</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="n">time</span><span class="p">);</span>
     <span class="k">else</span>
       <span class="nf">gdk_drag_status</span> <span class="p">(</span><span class="n">context</span><span class="p">,</span>
                        <span class="n">private_data</span><span class="o">-&gt;</span><span class="n">suggested_action</span><span class="p">,</span>
                        <span class="n">time</span><span class="p">);</span>
   <span class="p">}</span>
  <span class="k">else</span>
   <span class="p">{</span>
     <span class="c1">// accept the drop</span>
   <span class="p">}</span>
<span class="p">}</span></pre></td>
      </tr>
    </tbody>
  </table>
</div>

<p></p>
<div class="refsect3">
<a name="GtkWidget-drag-motion.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>context</p></td>
<td class="parameter_description"><p>the drag context</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>x</p></td>
<td class="parameter_description"><p>the x coordinate of the current cursor position</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>y</p></td>
<td class="parameter_description"><p>the y coordinate of the current cursor position</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>time</p></td>
<td class="parameter_description"><p>the timestamp of the motion event</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="GtkWidget-drag-motion.returns"></a><h4>Returns</h4>
<p> whether the cursor position is in a drop zone</p>
</div>
<p>Flags: Run Last</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-draw"></a><h3>The <code class="literal">“draw”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a>    *widget,
               <span class="type">CairoContext</span> *cr,
               <span class="type">gpointer</span>      user_data)</pre>
<p>This signal is emitted when a widget is supposed to render itself.
The <em class="parameter"><code>widget</code></em>
's top left corner must be painted at the origin of
the passed in context and be sized to the values returned by
<a class="link" href="GtkWidget.html#gtk-widget-get-allocated-width" title="gtk_widget_get_allocated_width ()"><code class="function">gtk_widget_get_allocated_width()</code></a> and
<a class="link" href="GtkWidget.html#gtk-widget-get-allocated-height" title="gtk_widget_get_allocated_height ()"><code class="function">gtk_widget_get_allocated_height()</code></a>.</p>
<p>Signal handlers connected to this signal can modify the cairo
context passed as <em class="parameter"><code>cr</code></em>
 in any way they like and don't need to
restore it. The signal emission takes care of calling <a href="/usr/share/gtk-doc/html/cairo/cairo-cairo-t.html#cairo-save"><code class="function">cairo_save()</code></a>
before and <a href="/usr/share/gtk-doc/html/cairo/cairo-cairo-t.html#cairo-restore"><code class="function">cairo_restore()</code></a> after invoking the handler.</p>
<p>The signal handler will get a <em class="parameter"><code>cr</code></em>
 with a clip region already set to the
widget's dirty region, i.e. to the area that needs repainting.  Complicated
widgets that want to avoid redrawing themselves completely can get the full
extents of the clip region with <code class="function">gdk_cairo_get_clip_rectangle()</code>, or they can
get a finer-grained representation of the dirty region with
<a href="/usr/share/gtk-doc/html/cairo/cairo-cairo-t.html#cairo-copy-clip-rectangle-list"><code class="function">cairo_copy_clip_rectangle_list()</code></a>.</p>
<div class="refsect3">
<a name="GtkWidget-draw.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>cr</p></td>
<td class="parameter_description"><p>the cairo context to draw to</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="GtkWidget-draw.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> to stop other handlers from being invoked for the event.
<code class="literal">FALSE</code> to propagate the event further.</p>
</div>
<p>Flags: Run Last</p>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-enter-notify-event"></a><h3>The <code class="literal">“enter-notify-event”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget,
               <span class="type">GdkEvent</span>  *event,
               <span class="type">gpointer</span>   user_data)</pre>
<p>The ::enter-notify-event will be emitted when the pointer enters
the <em class="parameter"><code>widget</code></em>
's window.</p>
<p>To receive this signal, the <span class="type">GdkWindow</span> associated to the widget needs
to enable the <span class="type">GDK_ENTER_NOTIFY_MASK</span> mask.</p>
<p>This signal will be sent to the grab widget if there is one.</p>
<div class="refsect3">
<a name="GtkWidget-enter-notify-event.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>the <span class="type">GdkEventCrossing</span> which triggered
this signal. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> Gdk.EventCrossing]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="GtkWidget-enter-notify-event.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> to stop other handlers from being invoked for the event.
<code class="literal">FALSE</code> to propagate the event further.</p>
</div>
<p>Flags: Run Last</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-event"></a><h3>The <code class="literal">“event”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget,
               <span class="type">GdkEvent</span>  *event,
               <span class="type">gpointer</span>   user_data)</pre>
<p>The GTK+ main loop will emit three signals for each GDK event delivered
to a widget: one generic ::event signal, another, more specific,
signal that matches the type of event delivered (e.g.
<a class="link" href="GtkWidget.html#GtkWidget-key-press-event" title="The “key-press-event” signal"><span class="type">“key-press-event”</span></a>) and finally a generic
<a class="link" href="GtkWidget.html#GtkWidget-event-after" title="The “event-after” signal"><span class="type">“event-after”</span></a> signal.</p>
<div class="refsect3">
<a name="GtkWidget-event.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>the <span class="type">GdkEvent</span> which triggered this signal</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="GtkWidget-event.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> to stop other handlers from being invoked for the event
and to cancel the emission of the second specific ::event signal.
<code class="literal">FALSE</code> to propagate the event further and to allow the emission of
the second signal. The ::event-after signal is emitted regardless of
the return value.</p>
</div>
<p>Flags: Run Last</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-event-after"></a><h3>The <code class="literal">“event-after”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget,
               <span class="type">GdkEvent</span>  *event,
               <span class="type">gpointer</span>   user_data)</pre>
<p>After the emission of the <a class="link" href="GtkWidget.html#GtkWidget-event" title="The “event” signal"><span class="type">“event”</span></a> signal and (optionally)
the second more specific signal, ::event-after will be emitted
regardless of the previous two signals handlers return values.</p>
<div class="refsect3">
<a name="GtkWidget-event-after.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>the <span class="type">GdkEvent</span> which triggered this signal</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-focus"></a><h3>The <code class="literal">“focus”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a>       *widget,
               <a class="link" href="gtk3-Standard-Enumerations.html#GtkDirectionType" title="enum GtkDirectionType"><span class="type">GtkDirectionType</span></a> direction,
               <span class="type">gpointer</span>         user_data)</pre>
<div class="refsect3">
<a name="GtkWidget-focus.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="GtkWidget-focus.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> to stop other handlers from being invoked for the event. <code class="literal">FALSE</code> to propagate the event further.</p>
</div>
<p>Flags: Run Last</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-focus-in-event"></a><h3>The <code class="literal">“focus-in-event”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget,
               <span class="type">GdkEvent</span>  *event,
               <span class="type">gpointer</span>   user_data)</pre>
<p>The ::focus-in-event signal will be emitted when the keyboard focus
enters the <em class="parameter"><code>widget</code></em>
's window.</p>
<p>To receive this signal, the <span class="type">GdkWindow</span> associated to the widget needs
to enable the <span class="type">GDK_FOCUS_CHANGE_MASK</span> mask.</p>
<div class="refsect3">
<a name="GtkWidget-focus-in-event.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>the <span class="type">GdkEventFocus</span> which triggered
this signal. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> Gdk.EventFocus]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="GtkWidget-focus-in-event.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> to stop other handlers from being invoked for the event.
<code class="literal">FALSE</code> to propagate the event further.</p>
</div>
<p>Flags: Run Last</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-focus-out-event"></a><h3>The <code class="literal">“focus-out-event”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget,
               <span class="type">GdkEvent</span>  *event,
               <span class="type">gpointer</span>   user_data)</pre>
<p>The ::focus-out-event signal will be emitted when the keyboard focus
leaves the <em class="parameter"><code>widget</code></em>
's window.</p>
<p>To receive this signal, the <span class="type">GdkWindow</span> associated to the widget needs
to enable the <span class="type">GDK_FOCUS_CHANGE_MASK</span> mask.</p>
<div class="refsect3">
<a name="GtkWidget-focus-out-event.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>the <span class="type">GdkEventFocus</span> which triggered this
signal. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> Gdk.EventFocus]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="GtkWidget-focus-out-event.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> to stop other handlers from being invoked for the event.
<code class="literal">FALSE</code> to propagate the event further.</p>
</div>
<p>Flags: Run Last</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-grab-broken-event"></a><h3>The <code class="literal">“grab-broken-event”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget,
               <span class="type">GdkEvent</span>  *event,
               <span class="type">gpointer</span>   user_data)</pre>
<p>Emitted when a pointer or keyboard grab on a window belonging
to <em class="parameter"><code>widget</code></em>
 gets broken.</p>
<p>On X11, this happens when the grab window becomes unviewable
(i.e. it or one of its ancestors is unmapped), or if the same
application grabs the pointer or keyboard again.</p>
<div class="refsect3">
<a name="GtkWidget-grab-broken-event.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>the <span class="type">GdkEventGrabBroken</span> event. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> Gdk.EventGrabBroken]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="GtkWidget-grab-broken-event.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> to stop other handlers from being invoked for
the event. <code class="literal">FALSE</code> to propagate the event further.</p>
</div>
<p>Flags: Run Last</p>
<p class="since">Since: 2.8</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-grab-focus"></a><h3>The <code class="literal">“grab-focus”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget,
               <span class="type">gpointer</span>   user_data)</pre>
<div class="refsect3">
<a name="GtkWidget-grab-focus.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p>Flags: Action</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-grab-notify"></a><h3>The <code class="literal">“grab-notify”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget,
               <span class="type">gboolean</span>   was_grabbed,
               <span class="type">gpointer</span>   user_data)</pre>
<p>The ::grab-notify signal is emitted when a widget becomes
shadowed by a GTK+ grab (not a pointer or keyboard grab) on
another widget, or when it becomes unshadowed due to a grab
being removed.</p>
<p>A widget is shadowed by a <a class="link" href="gtk3-General.html#gtk-grab-add" title="gtk_grab_add ()"><code class="function">gtk_grab_add()</code></a> when the topmost
grab widget in the grab stack of its window group is not
its ancestor.</p>
<div class="refsect3">
<a name="GtkWidget-grab-notify.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>was_grabbed</p></td>
<td class="parameter_description"><p><code class="literal">FALSE</code> if the widget becomes shadowed, <code class="literal">TRUE</code>
if it becomes unshadowed</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p>Flags: Run First</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-hide"></a><h3>The <code class="literal">“hide”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget,
               <span class="type">gpointer</span>   user_data)</pre>
<p>The ::hide signal is emitted when <em class="parameter"><code>widget</code></em>
 is hidden, for example with
<a class="link" href="GtkWidget.html#gtk-widget-hide" title="gtk_widget_hide ()"><code class="function">gtk_widget_hide()</code></a>.</p>
<div class="refsect3">
<a name="GtkWidget-hide.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p>Flags: Run First</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-hierarchy-changed"></a><h3>The <code class="literal">“hierarchy-changed”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget,
               <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *previous_toplevel,
               <span class="type">gpointer</span>   user_data)</pre>
<p>The ::hierarchy-changed signal is emitted when the
anchored state of a widget changes. A widget is
“anchored” when its toplevel
ancestor is a <a class="link" href="GtkWindow.html" title="GtkWindow"><span class="type">GtkWindow</span></a>. This signal is emitted when
a widget changes from un-anchored to anchored or vice-versa.</p>
<div class="refsect3">
<a name="GtkWidget-hierarchy-changed.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object on which the signal is emitted</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>previous_toplevel</p></td>
<td class="parameter_description"><p>the previous toplevel ancestor, or <code class="literal">NULL</code>
if the widget was previously unanchored. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p>Flags: Run Last</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-key-press-event"></a><h3>The <code class="literal">“key-press-event”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget,
               <span class="type">GdkEvent</span>  *event,
               <span class="type">gpointer</span>   user_data)</pre>
<p>The ::key-press-event signal is emitted when a key is pressed. The signal
emission will reoccur at the key-repeat rate when the key is kept pressed.</p>
<p>To receive this signal, the <span class="type">GdkWindow</span> associated to the widget needs
to enable the <span class="type">GDK_KEY_PRESS_MASK</span> mask.</p>
<p>This signal will be sent to the grab widget if there is one.</p>
<div class="refsect3">
<a name="GtkWidget-key-press-event.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>the <span class="type">GdkEventKey</span> which triggered this signal. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> Gdk.EventKey]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="GtkWidget-key-press-event.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> to stop other handlers from being invoked for the event.
<code class="literal">FALSE</code> to propagate the event further.</p>
</div>
<p>Flags: Run Last</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-key-release-event"></a><h3>The <code class="literal">“key-release-event”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget,
               <span class="type">GdkEvent</span>  *event,
               <span class="type">gpointer</span>   user_data)</pre>
<p>The ::key-release-event signal is emitted when a key is released.</p>
<p>To receive this signal, the <span class="type">GdkWindow</span> associated to the widget needs
to enable the <span class="type">GDK_KEY_RELEASE_MASK</span> mask.</p>
<p>This signal will be sent to the grab widget if there is one.</p>
<div class="refsect3">
<a name="GtkWidget-key-release-event.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>the <span class="type">GdkEventKey</span> which triggered this signal. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> Gdk.EventKey]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="GtkWidget-key-release-event.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> to stop other handlers from being invoked for the event.
<code class="literal">FALSE</code> to propagate the event further.</p>
</div>
<p>Flags: Run Last</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-keynav-failed"></a><h3>The <code class="literal">“keynav-failed”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a>       *widget,
               <a class="link" href="gtk3-Standard-Enumerations.html#GtkDirectionType" title="enum GtkDirectionType"><span class="type">GtkDirectionType</span></a> direction,
               <span class="type">gpointer</span>         user_data)</pre>
<p>Gets emitted if keyboard navigation fails.
See <a class="link" href="GtkWidget.html#gtk-widget-keynav-failed" title="gtk_widget_keynav_failed ()"><code class="function">gtk_widget_keynav_failed()</code></a> for details.</p>
<div class="refsect3">
<a name="GtkWidget-keynav-failed.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>direction</p></td>
<td class="parameter_description"><p>the direction of movement</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="GtkWidget-keynav-failed.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if stopping keyboard navigation is fine, <code class="literal">FALSE</code>
if the emitting widget should try to handle the keyboard
navigation attempt in its parent container(s).</p>
</div>
<p>Flags: Run Last</p>
<p class="since">Since: 2.12</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-leave-notify-event"></a><h3>The <code class="literal">“leave-notify-event”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget,
               <span class="type">GdkEvent</span>  *event,
               <span class="type">gpointer</span>   user_data)</pre>
<p>The ::leave-notify-event will be emitted when the pointer leaves
the <em class="parameter"><code>widget</code></em>
's window.</p>
<p>To receive this signal, the <span class="type">GdkWindow</span> associated to the widget needs
to enable the <span class="type">GDK_LEAVE_NOTIFY_MASK</span> mask.</p>
<p>This signal will be sent to the grab widget if there is one.</p>
<div class="refsect3">
<a name="GtkWidget-leave-notify-event.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>the <span class="type">GdkEventCrossing</span> which triggered
this signal. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> Gdk.EventCrossing]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="GtkWidget-leave-notify-event.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> to stop other handlers from being invoked for the event.
<code class="literal">FALSE</code> to propagate the event further.</p>
</div>
<p>Flags: Run Last</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-map"></a><h3>The <code class="literal">“map”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget,
               <span class="type">gpointer</span>   user_data)</pre>
<p>The ::map signal is emitted when <em class="parameter"><code>widget</code></em>
 is going to be mapped, that is
when the widget is visible (which is controlled with
<a class="link" href="GtkWidget.html#gtk-widget-set-visible" title="gtk_widget_set_visible ()"><code class="function">gtk_widget_set_visible()</code></a>) and all its parents up to the toplevel widget
are also visible. Once the map has occurred, <a class="link" href="GtkWidget.html#GtkWidget-map-event" title="The “map-event” signal"><span class="type">“map-event”</span></a> will
be emitted.</p>
<p>The ::map signal can be used to determine whether a widget will be drawn,
for instance it can resume an animation that was stopped during the
emission of <a class="link" href="GtkWidget.html#GtkWidget-unmap" title="The “unmap” signal"><span class="type">“unmap”</span></a>.</p>
<div class="refsect3">
<a name="GtkWidget-map.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p>Flags: Run First</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-map-event"></a><h3>The <code class="literal">“map-event”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget,
               <span class="type">GdkEvent</span>  *event,
               <span class="type">gpointer</span>   user_data)</pre>
<p>The ::map-event signal will be emitted when the <em class="parameter"><code>widget</code></em>
's window is
mapped. A window is mapped when it becomes visible on the screen.</p>
<p>To receive this signal, the <span class="type">GdkWindow</span> associated to the widget needs
to enable the <span class="type">GDK_STRUCTURE_MASK</span> mask. GDK will enable this mask
automatically for all new windows.</p>
<div class="refsect3">
<a name="GtkWidget-map-event.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>the <span class="type">GdkEventAny</span> which triggered this signal. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> Gdk.EventAny]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="GtkWidget-map-event.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> to stop other handlers from being invoked for the event.
<code class="literal">FALSE</code> to propagate the event further.</p>
</div>
<p>Flags: Run Last</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-mnemonic-activate"></a><h3>The <code class="literal">“mnemonic-activate”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget,
               <span class="type">gboolean</span>   group_cycling,
               <span class="type">gpointer</span>   user_data)</pre>
<p>The default handler for this signal activates <em class="parameter"><code>widget</code></em>
 if <em class="parameter"><code>group_cycling</code></em>

is <code class="literal">FALSE</code>, or just makes <em class="parameter"><code>widget</code></em>
 grab focus if <em class="parameter"><code>group_cycling</code></em>
 is <code class="literal">TRUE</code>.</p>
<div class="refsect3">
<a name="GtkWidget-mnemonic-activate.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>group_cycling</p></td>
<td class="parameter_description"><p><code class="literal">TRUE</code> if there are other widgets with the same mnemonic</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="GtkWidget-mnemonic-activate.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> to stop other handlers from being invoked for the event.
<code class="literal">FALSE</code> to propagate the event further.</p>
</div>
<p>Flags: Run Last</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-motion-notify-event"></a><h3>The <code class="literal">“motion-notify-event”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget,
               <span class="type">GdkEvent</span>  *event,
               <span class="type">gpointer</span>   user_data)</pre>
<p>The ::motion-notify-event signal is emitted when the pointer moves
over the widget's <span class="type">GdkWindow</span>.</p>
<p>To receive this signal, the <span class="type">GdkWindow</span> associated to the widget
needs to enable the <span class="type">GDK_POINTER_MOTION_MASK</span> mask.</p>
<p>This signal will be sent to the grab widget if there is one.</p>
<div class="refsect3">
<a name="GtkWidget-motion-notify-event.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>the <span class="type">GdkEventMotion</span> which triggered
this signal. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> Gdk.EventMotion]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="GtkWidget-motion-notify-event.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> to stop other handlers from being invoked for the event.
<code class="literal">FALSE</code> to propagate the event further.</p>
</div>
<p>Flags: Run Last</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-move-focus"></a><h3>The <code class="literal">“move-focus”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a>       *widget,
               <a class="link" href="gtk3-Standard-Enumerations.html#GtkDirectionType" title="enum GtkDirectionType"><span class="type">GtkDirectionType</span></a> direction,
               <span class="type">gpointer</span>         user_data)</pre>
<div class="refsect3">
<a name="GtkWidget-move-focus.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p>Flags: Action</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-parent-set"></a><h3>The <code class="literal">“parent-set”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget,
               <a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *old_parent,
               <span class="type">gpointer</span>   user_data)</pre>
<p>The ::parent-set signal is emitted when a new parent
has been set on a widget.</p>
<div class="refsect3">
<a name="GtkWidget-parent-set.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object on which the signal is emitted</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>old_parent</p></td>
<td class="parameter_description"><p>the previous parent, or <code class="literal">NULL</code> if the widget
just got its initial parent. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p>Flags: Run First</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-popup-menu"></a><h3>The <code class="literal">“popup-menu”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget,
               <span class="type">gpointer</span>   user_data)</pre>
<p>This signal gets emitted whenever a widget should pop up a context
menu. This usually happens through the standard key binding mechanism;
by pressing a certain key while a widget is focused, the user can cause
the widget to pop up a menu.  For example, the <a class="link" href="GtkEntry.html" title="GtkEntry"><span class="type">GtkEntry</span></a> widget creates
a menu with clipboard commands. See the
<a class="link" href="gtk-migrating-checklist.html#checklist-popup-menu" title="Implement GtkWidget::popup_menu">Popup Menu Migration Checklist</a>
for an example of how to use this signal.</p>
<div class="refsect3">
<a name="GtkWidget-popup-menu.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="GtkWidget-popup-menu.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if a menu was activated</p>
</div>
<p>Flags: Action</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-property-notify-event"></a><h3>The <code class="literal">“property-notify-event”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget,
               <span class="type">GdkEvent</span>  *event,
               <span class="type">gpointer</span>   user_data)</pre>
<p>The ::property-notify-event signal will be emitted when a property on
the <em class="parameter"><code>widget</code></em>
's window has been changed or deleted.</p>
<p>To receive this signal, the <span class="type">GdkWindow</span> associated to the widget needs
to enable the <span class="type">GDK_PROPERTY_CHANGE_MASK</span> mask.</p>
<div class="refsect3">
<a name="GtkWidget-property-notify-event.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>the <span class="type">GdkEventProperty</span> which triggered
this signal. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> Gdk.EventProperty]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="GtkWidget-property-notify-event.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> to stop other handlers from being invoked for the event.
<code class="literal">FALSE</code> to propagate the event further.</p>
</div>
<p>Flags: Run Last</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-proximity-in-event"></a><h3>The <code class="literal">“proximity-in-event”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget,
               <span class="type">GdkEvent</span>  *event,
               <span class="type">gpointer</span>   user_data)</pre>
<p>To receive this signal the <span class="type">GdkWindow</span> associated to the widget needs
to enable the <span class="type">GDK_PROXIMITY_IN_MASK</span> mask.</p>
<p>This signal will be sent to the grab widget if there is one.</p>
<div class="refsect3">
<a name="GtkWidget-proximity-in-event.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>the <span class="type">GdkEventProximity</span> which triggered
this signal. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> Gdk.EventProximity]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="GtkWidget-proximity-in-event.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> to stop other handlers from being invoked for the event.
<code class="literal">FALSE</code> to propagate the event further.</p>
</div>
<p>Flags: Run Last</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-proximity-out-event"></a><h3>The <code class="literal">“proximity-out-event”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget,
               <span class="type">GdkEvent</span>  *event,
               <span class="type">gpointer</span>   user_data)</pre>
<p>To receive this signal the <span class="type">GdkWindow</span> associated to the widget needs
to enable the <span class="type">GDK_PROXIMITY_OUT_MASK</span> mask.</p>
<p>This signal will be sent to the grab widget if there is one.</p>
<div class="refsect3">
<a name="GtkWidget-proximity-out-event.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>the <span class="type">GdkEventProximity</span> which triggered
this signal. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> Gdk.EventProximity]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="GtkWidget-proximity-out-event.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> to stop other handlers from being invoked for the event.
<code class="literal">FALSE</code> to propagate the event further.</p>
</div>
<p>Flags: Run Last</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-query-tooltip"></a><h3>The <code class="literal">“query-tooltip”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a>  *widget,
               <span class="type">int</span>         x,
               <span class="type">int</span>         y,
               <span class="type">gboolean</span>    keyboard_mode,
               <a class="link" href="GtkTooltip.html" title="GtkTooltip"><span class="type">GtkTooltip</span></a> *tooltip,
               <span class="type">gpointer</span>    user_data)</pre>
<p>Emitted when <a class="link" href="GtkWidget.html#GtkWidget--has-tooltip" title="The “has-tooltip” property"><span class="type">“has-tooltip”</span></a> is <code class="literal">TRUE</code> and the hover timeout
has expired with the cursor hovering "above" <em class="parameter"><code>widget</code></em>
; or emitted when <em class="parameter"><code>widget</code></em>
 got
focus in keyboard mode.</p>
<p>Using the given coordinates, the signal handler should determine
whether a tooltip should be shown for <em class="parameter"><code>widget</code></em>
. If this is the case
<code class="literal">TRUE</code> should be returned, <code class="literal">FALSE</code> otherwise.  Note that if
<em class="parameter"><code>keyboard_mode</code></em>
 is <code class="literal">TRUE</code>, the values of <em class="parameter"><code>x</code></em>
 and <em class="parameter"><code>y</code></em>
 are undefined and
should not be used.</p>
<p>The signal handler is free to manipulate <em class="parameter"><code>tooltip</code></em>
 with the therefore
destined function calls.</p>
<div class="refsect3">
<a name="GtkWidget-query-tooltip.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>x</p></td>
<td class="parameter_description"><p>the x coordinate of the cursor position where the request has
been emitted, relative to <em class="parameter"><code>widget</code></em>
's left side</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>y</p></td>
<td class="parameter_description"><p>the y coordinate of the cursor position where the request has
been emitted, relative to <em class="parameter"><code>widget</code></em>
's top</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>keyboard_mode</p></td>
<td class="parameter_description"><p><code class="literal">TRUE</code> if the tooltip was triggered using the keyboard</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>tooltip</p></td>
<td class="parameter_description"><p>a <a class="link" href="GtkTooltip.html" title="GtkTooltip"><span class="type">GtkTooltip</span></a></p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="GtkWidget-query-tooltip.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> if <em class="parameter"><code>tooltip</code></em>
should be shown right now, <code class="literal">FALSE</code> otherwise.</p>
</div>
<p>Flags: Run Last</p>
<p class="since">Since: 2.12</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-realize"></a><h3>The <code class="literal">“realize”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget,
               <span class="type">gpointer</span>   user_data)</pre>
<p>The ::realize signal is emitted when <em class="parameter"><code>widget</code></em>
 is associated with a
<span class="type">GdkWindow</span>, which means that <a class="link" href="GtkWidget.html#gtk-widget-realize" title="gtk_widget_realize ()"><code class="function">gtk_widget_realize()</code></a> has been called or the
widget has been mapped (that is, it is going to be drawn).</p>
<div class="refsect3">
<a name="GtkWidget-realize.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p>Flags: Run First</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-screen-changed"></a><h3>The <code class="literal">“screen-changed”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget,
               <span class="type">GdkScreen</span> *previous_screen,
               <span class="type">gpointer</span>   user_data)</pre>
<p>The ::screen-changed signal gets emitted when the
screen of a widget has changed.</p>
<div class="refsect3">
<a name="GtkWidget-screen-changed.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object on which the signal is emitted</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>previous_screen</p></td>
<td class="parameter_description"><p>the previous screen, or <code class="literal">NULL</code> if the
widget was not associated with a screen before. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p>Flags: Run Last</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-scroll-event"></a><h3>The <code class="literal">“scroll-event”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget,
               <span class="type">GdkEvent</span>  *event,
               <span class="type">gpointer</span>   user_data)</pre>
<p>The ::scroll-event signal is emitted when a button in the 4 to 7
range is pressed. Wheel mice are usually configured to generate
button press events for buttons 4 and 5 when the wheel is turned.</p>
<p>To receive this signal, the <span class="type">GdkWindow</span> associated to the widget needs
to enable the <span class="type">GDK_SCROLL_MASK</span> mask.</p>
<p>This signal will be sent to the grab widget if there is one.</p>
<div class="refsect3">
<a name="GtkWidget-scroll-event.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>the <span class="type">GdkEventScroll</span> which triggered
this signal. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> Gdk.EventScroll]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="GtkWidget-scroll-event.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> to stop other handlers from being invoked for the event.
<code class="literal">FALSE</code> to propagate the event further.</p>
</div>
<p>Flags: Run Last</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-selection-clear-event"></a><h3>The <code class="literal">“selection-clear-event”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget,
               <span class="type">GdkEvent</span>  *event,
               <span class="type">gpointer</span>   user_data)</pre>
<p>The ::selection-clear-event signal will be emitted when the
the <em class="parameter"><code>widget</code></em>
's window has lost ownership of a selection.</p>
<div class="refsect3">
<a name="GtkWidget-selection-clear-event.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>the <span class="type">GdkEventSelection</span> which triggered
this signal. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> Gdk.EventSelection]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="GtkWidget-selection-clear-event.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> to stop other handlers from being invoked for the event.
<code class="literal">FALSE</code> to propagate the event further.</p>
</div>
<p>Flags: Run Last</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-selection-get"></a><h3>The <code class="literal">“selection-get”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a>        *widget,
               <a class="link" href="gtk3-Selections.html#GtkSelectionData"><span class="type">GtkSelectionData</span></a> *data,
               <span class="type">guint</span>             info,
               <span class="type">guint</span>             time,
               <span class="type">gpointer</span>          user_data)</pre>
<div class="refsect3">
<a name="GtkWidget-selection-get.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p>Flags: Run Last</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-selection-notify-event"></a><h3>The <code class="literal">“selection-notify-event”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget,
               <span class="type">GdkEvent</span>  *event,
               <span class="type">gpointer</span>   user_data)</pre>
<div class="refsect3">
<a name="GtkWidget-selection-notify-event.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> Gdk.EventSelection]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="GtkWidget-selection-notify-event.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> to stop other handlers from being invoked for the event. <code class="literal">FALSE</code> to propagate the event further.</p>
</div>
<p>Flags: Run Last</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-selection-received"></a><h3>The <code class="literal">“selection-received”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a>        *widget,
               <a class="link" href="gtk3-Selections.html#GtkSelectionData"><span class="type">GtkSelectionData</span></a> *data,
               <span class="type">guint</span>             time,
               <span class="type">gpointer</span>          user_data)</pre>
<div class="refsect3">
<a name="GtkWidget-selection-received.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p>Flags: Run Last</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-selection-request-event"></a><h3>The <code class="literal">“selection-request-event”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget,
               <span class="type">GdkEvent</span>  *event,
               <span class="type">gpointer</span>   user_data)</pre>
<p>The ::selection-request-event signal will be emitted when
another client requests ownership of the selection owned by
the <em class="parameter"><code>widget</code></em>
's window.</p>
<div class="refsect3">
<a name="GtkWidget-selection-request-event.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>the <span class="type">GdkEventSelection</span> which triggered
this signal. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> Gdk.EventSelection]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="GtkWidget-selection-request-event.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> to stop other handlers from being invoked for the event.
<code class="literal">FALSE</code> to propagate the event further.</p>
</div>
<p>Flags: Run Last</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-show"></a><h3>The <code class="literal">“show”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget,
               <span class="type">gpointer</span>   user_data)</pre>
<p>The ::show signal is emitted when <em class="parameter"><code>widget</code></em>
 is shown, for example with
<a class="link" href="GtkWidget.html#gtk-widget-show" title="gtk_widget_show ()"><code class="function">gtk_widget_show()</code></a>.</p>
<div class="refsect3">
<a name="GtkWidget-show.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p>Flags: Run First</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-show-help"></a><h3>The <code class="literal">“show-help”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a>        *widget,
               <a class="link" href="GtkWidget.html#GtkWidgetHelpType" title="enum GtkWidgetHelpType"><span class="type">GtkWidgetHelpType</span></a> help_type,
               <span class="type">gpointer</span>          user_data)</pre>
<div class="refsect3">
<a name="GtkWidget-show-help.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="GtkWidget-show-help.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> to stop other handlers from being invoked for the event.
<code class="literal">FALSE</code> to propagate the event further.</p>
</div>
<p>Flags: Action</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-size-allocate"></a><h3>The <code class="literal">“size-allocate”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a>    *widget,
               <span class="type">GdkRectangle</span> *allocation,
               <span class="type">gpointer</span>      user_data)</pre>
<div class="refsect3">
<a name="GtkWidget-size-allocate.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>allocation</p></td>
<td class="parameter_description"><p>the region which has been
allocated to the widget. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> Gtk.Allocation]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p>Flags: Run First</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-state-changed"></a><h3>The <code class="literal">“state-changed”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a>   *widget,
               <a class="link" href="GtkWidget.html#GtkStateType" title="enum GtkStateType"><span class="type">GtkStateType</span></a> state,
               <span class="type">gpointer</span>     user_data)</pre>
<p>The ::state-changed signal is emitted when the widget state changes.
See <a class="link" href="GtkWidget.html#gtk-widget-get-state" title="gtk_widget_get_state ()"><code class="function">gtk_widget_get_state()</code></a>.</p>
<div class="warning">
<p><code class="literal">GtkWidget::state-changed</code> has been deprecated since version 3.0 and should not be used in newly-written code.</p>
<p>Use <a class="link" href="GtkWidget.html#GtkWidget-state-flags-changed" title="The “state-flags-changed” signal"><span class="type">“state-flags-changed”</span></a> instead.</p>
</div>
<div class="refsect3">
<a name="GtkWidget-state-changed.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>state</p></td>
<td class="parameter_description"><p>the previous state</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p>Flags: Run First</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-state-flags-changed"></a><h3>The <code class="literal">“state-flags-changed”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a>    *widget,
               <a class="link" href="gtk3-Standard-Enumerations.html#GtkStateFlags" title="enum GtkStateFlags"><span class="type">GtkStateFlags</span></a> flags,
               <span class="type">gpointer</span>      user_data)</pre>
<p>The ::state-flags-changed signal is emitted when the widget state
changes, see <a class="link" href="GtkWidget.html#gtk-widget-get-state-flags" title="gtk_widget_get_state_flags ()"><code class="function">gtk_widget_get_state_flags()</code></a>.</p>
<div class="refsect3">
<a name="GtkWidget-state-flags-changed.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>flags</p></td>
<td class="parameter_description"><p>The previous state flags.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p>Flags: Run First</p>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-style-set"></a><h3>The <code class="literal">“style-set”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget,
               <a class="link" href="GtkStyle.html" title="GtkStyle"><span class="type">GtkStyle</span></a>  *previous_style,
               <span class="type">gpointer</span>   user_data)</pre>
<p>The ::style-set signal is emitted when a new style has been set
on a widget. Note that style-modifying functions like
<a class="link" href="GtkWidget.html#gtk-widget-modify-base" title="gtk_widget_modify_base ()"><code class="function">gtk_widget_modify_base()</code></a> also cause this signal to be emitted.</p>
<p>Note that this signal is emitted for changes to the deprecated
<a class="link" href="GtkStyle.html" title="GtkStyle"><span class="type">GtkStyle</span></a>. To track changes to the <a class="link" href="GtkStyleContext.html" title="GtkStyleContext"><span class="type">GtkStyleContext</span></a> associated
with a widget, use the <a class="link" href="GtkWidget.html#GtkWidget-style-updated" title="The “style-updated” signal"><span class="type">“style-updated”</span></a> signal.</p>
<div class="warning">
<p><code class="literal">GtkWidget::style-set</code> has been deprecated since version 3.0 and should not be used in newly-written code.</p>
<p>Use the <a class="link" href="GtkWidget.html#GtkWidget-style-updated" title="The “style-updated” signal"><span class="type">“style-updated”</span></a> signal</p>
</div>
<div class="refsect3">
<a name="GtkWidget-style-set.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object on which the signal is emitted</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>previous_style</p></td>
<td class="parameter_description"><p>the previous style, or <code class="literal">NULL</code> if the widget
just got its initial style. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p>Flags: Run First</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-style-updated"></a><h3>The <code class="literal">“style-updated”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget,
               <span class="type">gpointer</span>   user_data)</pre>
<p>The ::style-updated signal is a convenience signal that is emitted when the
<a class="link" href="GtkStyleContext.html#GtkStyleContext-changed" title="The “changed” signal"><span class="type">“changed”</span></a> signal is emitted on the <em class="parameter"><code>widget</code></em>
's associated
<a class="link" href="GtkStyleContext.html" title="GtkStyleContext"><span class="type">GtkStyleContext</span></a> as returned by <a class="link" href="GtkWidget.html#gtk-widget-get-style-context" title="gtk_widget_get_style_context ()"><code class="function">gtk_widget_get_style_context()</code></a>.</p>
<p>Note that style-modifying functions like <a class="link" href="GtkWidget.html#gtk-widget-override-color" title="gtk_widget_override_color ()"><code class="function">gtk_widget_override_color()</code></a> also
cause this signal to be emitted.</p>
<div class="refsect3">
<a name="GtkWidget-style-updated.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object on which the signal is emitted</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p>Flags: Run First</p>
<p class="since">Since: <a class="link" href="api-index-3-0.html#api-index-3.0">3.0</a></p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-touch-event"></a><h3>The <code class="literal">“touch-event”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget,
               <span class="type">GdkEvent</span>  *arg1,
               <span class="type">gpointer</span>   user_data)</pre>
<p>Flags: Run Last</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-unmap"></a><h3>The <code class="literal">“unmap”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget,
               <span class="type">gpointer</span>   user_data)</pre>
<p>The ::unmap signal is emitted when <em class="parameter"><code>widget</code></em>
 is going to be unmapped, which
means that either it or any of its parents up to the toplevel widget have
been set as hidden.</p>
<p>As ::unmap indicates that a widget will not be shown any longer, it can be
used to, for example, stop an animation on the widget.</p>
<div class="refsect3">
<a name="GtkWidget-unmap.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p>Flags: Run First</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-unmap-event"></a><h3>The <code class="literal">“unmap-event”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget,
               <span class="type">GdkEvent</span>  *event,
               <span class="type">gpointer</span>   user_data)</pre>
<p>The ::unmap-event signal will be emitted when the <em class="parameter"><code>widget</code></em>
's window is
unmapped. A window is unmapped when it becomes invisible on the screen.</p>
<p>To receive this signal, the <span class="type">GdkWindow</span> associated to the widget needs
to enable the <span class="type">GDK_STRUCTURE_MASK</span> mask. GDK will enable this mask
automatically for all new windows.</p>
<div class="refsect3">
<a name="GtkWidget-unmap-event.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>the <span class="type">GdkEventAny</span> which triggered this signal. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> Gdk.EventAny]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="GtkWidget-unmap-event.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> to stop other handlers from being invoked for the event.
<code class="literal">FALSE</code> to propagate the event further.</p>
</div>
<p>Flags: Run Last</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-unrealize"></a><h3>The <code class="literal">“unrealize”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget,
               <span class="type">gpointer</span>   user_data)</pre>
<p>The ::unrealize signal is emitted when the <span class="type">GdkWindow</span> associated with
<em class="parameter"><code>widget</code></em>
 is destroyed, which means that <a class="link" href="GtkWidget.html#gtk-widget-unrealize" title="gtk_widget_unrealize ()"><code class="function">gtk_widget_unrealize()</code></a> has been
called or the widget has been unmapped (that is, it is going to be
hidden).</p>
<div class="refsect3">
<a name="GtkWidget-unrealize.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal.</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<p>Flags: Run Last</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-visibility-notify-event"></a><h3>The <code class="literal">“visibility-notify-event”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget,
               <span class="type">GdkEvent</span>  *event,
               <span class="type">gpointer</span>   user_data)</pre>
<p>The ::visibility-notify-event will be emitted when the <em class="parameter"><code>widget</code></em>
's
window is obscured or unobscured.</p>
<p>To receive this signal the <span class="type">GdkWindow</span> associated to the widget needs
to enable the <span class="type">GDK_VISIBILITY_NOTIFY_MASK</span> mask.</p>
<div class="warning">
<p><code class="literal">GtkWidget::visibility-notify-event</code> has been deprecated since version 3.12 and should not be used in newly-written code.</p>
<p>Modern composited windowing systems with pervasive
    transparency make it impossible to track the visibility of a window
    reliably, so this signal can not be guaranteed to provide useful
    information.</p>
</div>
<div class="refsect3">
<a name="GtkWidget-visibility-notify-event.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>the <span class="type">GdkEventVisibility</span> which
triggered this signal. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> Gdk.EventVisibility]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="GtkWidget-visibility-notify-event.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> to stop other handlers from being invoked for the event.
<code class="literal">FALSE</code> to propagate the event further.</p>
</div>
<p>Flags: Run Last</p>
</div>
<hr>
<div class="refsect2">
<a name="GtkWidget-window-state-event"></a><h3>The <code class="literal">“window-state-event”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">gboolean</span>
user_function (<a class="link" href="GtkWidget.html" title="GtkWidget"><span class="type">GtkWidget</span></a> *widget,
               <span class="type">GdkEvent</span>  *event,
               <span class="type">gpointer</span>   user_data)</pre>
<p>The ::window-state-event will be emitted when the state of the
toplevel window associated to the <em class="parameter"><code>widget</code></em>
 changes.</p>
<p>To receive this signal the <span class="type">GdkWindow</span> associated to the widget
needs to enable the <span class="type">GDK_STRUCTURE_MASK</span> mask. GDK will enable
this mask automatically for all new windows.</p>
<div class="refsect3">
<a name="GtkWidget-window-state-event.parameters"></a><h4>Parameters</h4>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="parameters_name">
<col class="parameters_description">
<col width="200px" class="parameters_annotations">
</colgroup>
<tbody>
<tr>
<td class="parameter_name"><p>widget</p></td>
<td class="parameter_description"><p>the object which received the signal</p></td>
<td class="parameter_annotations"> </td>
</tr>
<tr>
<td class="parameter_name"><p>event</p></td>
<td class="parameter_description"><p>the <span class="type">GdkEventWindowState</span> which
triggered this signal. </p></td>
<td class="parameter_annotations"><span class="annotation">[<acronym title="Override the parsed C type with given type."><span class="acronym">type</span></acronym> Gdk.EventWindowState]</span></td>
</tr>
<tr>
<td class="parameter_name"><p>user_data</p></td>
<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
<td class="parameter_annotations"> </td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect3">
<a name="GtkWidget-window-state-event.returns"></a><h4>Returns</h4>
<p> <code class="literal">TRUE</code> to stop other handlers from being invoked for the
event. <code class="literal">FALSE</code> to propagate the event further.</p>
</div>
<p>Flags: Run Last</p>
</div>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.33.1</div>
</body>
</html>